Я пытаюсь создать компилятор, чтобы потом передать ему файл .c.
Я загрузил грамматики YACC и LEX с http://www.quut.com/c/ANSI-C-grammar-y.html и назвали их clexyacc.l и clexyacc.y
При генерации на терминале я сделал:
yacc -d clexyacc.y
lex clexyacc.l
Все прошло нормально. Когда я перехожу к последней части, я получаю несколько ошибок.
Последняя часть: cc lex.yy.c y.tab.c -oclexyacc.exe
Но я получаю такие ошибки:
y.tab.c:2261:16: warning: implicit declaration of function 'yylex' is invalid in C99 [-Wimplicit-function-declaration] yychar = YYLEX; ^ y.tab.c:1617:16: note: expanded from macro 'YYLEX' # define YYLEX yylex () ^ y.tab.c:2379:7: warning: implicit declaration of function 'yyerror' is invalid in C99 [-Wimplicit-function-declaration] yyerror (YY_("syntax error")); ^ clexyacc.y:530:6: error: conflicting types for 'yyerror' void yyerror(const char *s) ^ y.tab.c:2379:7: note: previous implicit declaration is here yyerror (YY_("syntax error")); ^ 2 warnings and 1 error generated.
yyerror
в вашем файле лексера? См .: stackoverflow.com/questions/15641256/ - person Joe   schedule 18.05.2014