我有两个lex带有函数的文件,xxlex()还有yylex()一个yacc语法文件。我希望在语法规则上始终调用xxlex(). 但是xxlex()只调用一次,我希望它总是被调用。我该怎么做?
1 回答
1
默认情况下,Yacc 语法调用yylex()以获取新标记。
如果您想在xxlex()某些时间打电话,那么您可以安排yylex()在适当的时间打电话。
如果你想xxlex()每次都被调用,那么要么重命名它yylex()并将原来的重命名xxlex()为zzlex(),或者使用bison -p xx,以便所有内容(包括解析器函数)都以xx而不是yy. (相同的标志 ,-p也适用于 POSIX-compliant 。该程序yacc需要flex生成所有-P xx以xx而不是通过将前缀从更改为其他一些字母,例如。)yylexmakefilesedlexyyxx
于 2013-05-19T01:15:15.280 回答