Я хочу сгенерировать две отдельные функции синтаксического анализа из lex/yacc. Обычно yacc дает вам функцию yyparse(), которую вы можете вызвать, когда вам нужно выполнить какой-то анализ, но мне нужно иметь несколько разных yyparse, каждый из которых связан с разными лексерами и грамматиками. Страница руководства, кажется, предлагает флаг -p (префикс), но это не сработало для меня. Я получил ошибки от gcc, которые указывали на то, что yylval не был должным образом перемаркирован (т.е. он утверждает, что несколько разных токенов не определены). Кто-нибудь знает общую процедуру создания этих отдельных функций?
Благодарность
flex -P zz lex.l
оставляет много вхождений 'yy' в исходном коде C, lex.zz.c, но ни один из них не виден за пределами объектного файла (nm -g lex.zz.o
). - person Jonathan Leffler   schedule 20.03.2010