编译 lex 文件时出错

Error while compiling lex file

%{
#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”)) 帮我解决这个问题。

*yytext[0] 中删除 *[0]

yytext 是指向 char 的指针,因此 yytext[0]char 并且您不能取消引用 char,正如编译器告诉您的那样.