我对yacc编译器有疑问。我不编译简单的yacc语法。这里是代码部分:简单的yacc语法给出错误
/*anbn_0.y */
%token A B
%%
start: anbn '\n' {printf(" is in anbn_0\n");
return 0;}
anbn: empty
| A anbn B
;
empty: ;
%%
#include "lex.yy.c"
yyerror(s)
char *s;
{ printf("%s, it is not in anbn_0\n", s);
我使用mac os x和,我尝试哟命令; $ yacc anbn_0.y
然后 $ gcc -o anbn_0 y.tab.c -ll
并给我错误。这是错误;
warning: implicit declaration of function 'yylex' is invalid in C99 [-Wimplicit-function-declaration]
yychar = YYLEX;
为什么我得到一个错误?
你没有收到错误 - 这是一个警告。它几乎是不言自明的 - 你运行的yacc版本是按照旧C89标准(甚至更早)生成代码,而不是更新的C99标准。 –