Функции и переменные Yacc
Yacc создает для Вас функцию yyparse. Эта функция не имеет аргументов и возвращает 0 или 1 в случае успеха или отказа. Все используемые переменные (yytext, yylval и так далее) определены в лексическом анализаторе.
Интеграция Lex и Yacc Lex очень часто используется в качестве лексического анализатора для Yacc. Эти две программы были специально разработаны для эффективного совместного использования. Обычно, при определении лексем в Yacc ожидается, что анализатор yylex возвратит эти лексемы. Эти зависимости несложно установить. В Yacc можно определить строку типа
% token INTEGER
Эта лексема затем используется в грамматике. В Lex необходимо определить способ возврата этого целого числа:
%{ #include "y. tab. h" %} %% [1-9][0-9]* { yylval=atoi(yytext); return INTEGER;}
Необходимо включить заголовок в вывод Lex таким образом, чтобы значения лексем корректно передавались между лексическим и синтаксическим анализатором. Также необходимо сформировать вашу грамматику, используя опцию -d для Yacc, чтобы создать соответствующий файл заголовка.
[ ] [ ] [ ]