我使用JAVACC来解析由初始非终端G的bnf语法定义的一些字符串。 我想捕获TokenMgrError抛出的错误。 特别是,我想处理以下两种情况:
目前我在每种情况下都得到了TokenMgrError。 我开始修改生成的文件(即,将Error更改为Exception并添加适当的try / catch / throws语句),但我发现它很乏味。此外,自动生成由JAVACC生成的修改文件不起作用。有没有更聪明的方法来实现这个目标?
答案 0 :(得分:1)
您可以通过包含
来消除所有TokenMgrErrors<*> TOKEN : { <UNEXPECTED: ~[] > }
作为最终规则。这会将你所有的问题推到语法层面,你可以更容易地处理它们。