我有一个关于yacc编译器的问题。我无法编译简单的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;
为什么会出现错误?