【发布时间】:2017-05-17 04:30:04
【问题描述】:
如何在词法分析器中捕获异常?在解析器中,如果规则失败(或与给定的输入流不匹配)Antlr 将抛出异常,我们可以轻松捕获此异常。在 Antlr3 的词法分析器中捕获异常。Ref:Error handeling in antlr 3.0...
attribute :
Value1 integer1["Value1"] { System.out.println("Accepted"); }
| Value2 integer2["Value2"] { System.out.println("Accepted"); }
;
catch[Exception e] {System.out.println("General error Reported");}
它可以在解析器中工作。但是我怎样才能在词法分析器本身中捕获异常呢?在解析器中说我有像
这样的规则str:STRING|DIGIT;
在词法分析器中,STRING 被定义为
STRING : ('"' 'a'..'z' '"');
我的输入流是“上帝”......如果我错过了双引号或者如果我放了额外的双引号,那么我希望这个异常应该在词法分析器本身中被捕获......有什么方法可以做到这一点?有可能吗?
【问题讨论】: