首页 文章

编译lex文件时出错

提问于
浏览
0
%{
#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'))帮我解决这个问题 .

1 回答

  • 0

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

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

相关问题