我的词法分析器和解析器有问题。
首先,在我的词法分析器中,我有这样一行:
"if" beginScope(stOTHER); return IF;
在我的解析器中:
stmt: IF '(' exp ')' stmts
...
stmts: stmt
| '{' stmt_list '}'
| '{' '}'
在这样的代码中:
if(sth) {
dosth;
}
if(other) {
doothersth;
}
beginScope 将被调用两次,因为(我认为)Bison 不知道if
语句的结尾在哪里,所以当它找到IF
令牌时,他将其作为if
语句的结尾,并再次读取它以开始另一种if
说法...
请帮我...