我对C语言中的树语法antlr3有一些疑问。用C语言中的antlr3解析一些特定的语句
我几乎完成了我的解释器(函数,变量,布尔和数学表达式确定)和我一直为最终最困难的语句(如如,开关等)
1)我想解释一个简单的循环语句:
repeat: ^(REPEAT DIGIT stmt);
我见过很多例子,但对树遍历(仅与宏MARK此主题()/快退(M)+ @Init/@After但不工作没有(我有antlr错误:“意外节点在偏移量0”))。我如何解释C中的这个陈述?
2)用一个简单的if语句同样的问题:
if: ^(IF condition stmt elseifstmt* elsestmt?);
的问题是跳过语句,如果条件为假,并测试其他ELSEIF/else语句。
3)我有一些可以停止脚本的语句(如“break”或“exit”)。我如何打断树步行者并跳过以下标记?
4)当检测到词法分析器或分析器错误时,antlr返回一个错误。但我想制作我自己的错误消息。如何解析解析器崩溃的行号?
询问我是否需要更多详细信息。
非常感谢你(我为我的英文不好道歉)
您是否找到该问题的答案? – greydet 2011-12-29 19:06:25