我使用JAVACC来解析由bnf语法定义的带有初始非终结符G的某些字符串。
我想捕获TokenMgrError引发的错误。
我特别要处理以下两种情况:
目前,在每种情况下,我都得到TokenMgrError。
我开始修改生成的文件(即,将Error更改为Exception并添加适当的try/catch/throws语句),但是我发现它很乏味。另外,无法自动生成由JAVACC生成的修改文件。有没有更聪明的方式来做到这一点?
最佳答案
您始终可以通过包含以下内容消除所有TokenMgrErrors:
<*> TOKEN : { <UNEXPECTED: ~[] > }
作为最终规则。这会将您所有的问题推到语法级别,您通常可以更轻松地处理它们。
关于error-handling - 忽略JAVACC中的MSGTokenError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17848241/