全,
在我的Lex文件中,我们将一些运算符识别为标记,其中一些运算符是
":p"
and
":" 问题是,任何以:p开头的单词,如":presentation",都不会被识别为
':' word /*grammar*/并且由于返回的lex值":p"作为下一个令牌而触发解析错误
我该如何解决这个歧义呢?
发布于 2012-05-07 20:23:35
相反,您应该定义一个词法分析器规则来匹配整个"symbol“标记,例如
:[a-zA-Z_][a-zA-Z0-9_]* { yylval.symbol = strdup(yytext + 1); return SYMBOL; }如果需要,您可以在此规则中检查:p和特殊情况,例如:
:[a-zA-Z_][a-zA-Z0-9_]* {
if (strcmp(yytext, ":p") == 0) {
return OP_P;
}
yylval.symbol = strdup(yytext + 1);
return SYMBOL;
}https://stackoverflow.com/questions/10480215
复制相似问题