我在使用 ANTLR v3 恢复和重新发布错误时遇到问题。我点击这个链接http://www.antlr.org/blog/antlr3/error.handling.tml但我没有那个解决方案。
我想做一些报告和恢复
例如在源程序中是这样的:
学生输入代码:
FOR(int a=0;a<10;a++){
b=b*a;
}
程序会这样报告:
程序:“您的意思是关键字 FOR 是 for 吗?”
学生回答:“是”
之后系统自动恢复并修改源代码。
如何使用 ANTLR v3 做到这一点?使用 ANTLR 不可能做到这一点?
需要帮忙。多谢你们!
我认为你需要覆盖org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken
在生成的解析器类中。
当 ANTLR 检测到无效令牌时调用此函数。因此,在您自己的函数中,您可以询问用户是否需要恢复。
如果需要的话可以拨打电话BaseRecognizer.recoverFromMismatchedToken
来执行恢复。如果没有,你可以抛出异常MismatchedTokenException
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)