%{
#include <stdio.h>
#include "y.tab.h"
extern int yylval;
%}
%%
[a-zA-Z] { yylval= *yytext[0]; return ID; }
[0-9] { yylval= *yytext[0]; return NUM;}
. return yytext[0];
\n return 0;
%%
我正在编译这个lex文件和yacc文件,当我点击以下命令(cc lex.yy.c y.tab.h -ll)时,错误就是上面的lex代码(错误) :一元'*'的无效类型参数(有'int')) 帮我解决这个问题。
答案 0 :(得分:0)
从*
移除[0]
或*yytext[0]
。
yytext
是指向char
的指针,因此yytext[0]
是char
,您无法取消引用char
,正如编译器告诉您的那样。< / p>