0

我有两个lex带有函数的文件,xxlex()还有yylex()一个yacc语法文件。我希望在语法规则上始终调用xxlex(). 但是xxlex()只调用一次,我希望它总是被调用。我该怎么做?

4

1 回答 1

1

默认情况下,Yacc 语法调用yylex()以获取新标记。

如果您想在xxlex()某些时间打电话,那么您可以安排yylex()在适当的时间打电话。

如果你想xxlex()每次都被调用,那么要么重命名它yylex()并将原来的重命名xxlex()zzlex(),或者使用bison -p xx,以便所有内容(包括解析器函数)都以xx而不是yy. (相同的标志 ,-p也适用于 POSIX-compliant 。该程序yacc需要flex生成所有-P xxxx而不是通过将前缀从更改为其他一些字母,例如。)yylexmakefilesedlexyyxx

于 2013-05-19T01:15:15.280 回答