所述的Antlr某种程度上忽略字符如〜,@,#,$,%,* ,(,),{,},[,]来自输入字符串。
我测试了输入字符串的下面的语法,如show ~~~,show〜@#$%等,但Antlr转义eclipse/antlr工程解释器上的字符。我希望这样的场景抛出一个异常,而不是从它们中恢复。如果你之前遇到过这种情况,请告诉我,如果是这样,你做了什么来摆脱它。
grammar Sample;
options {language = Java;} @header {package a.b.c;} @lexer::header {package a.b.c;}
prog: stat+ ; stat: expr ; expr: paramValueChildStructure ;
paramValueChildStructure: ALPHANUMERIC;
ALPHANUMERIC: ('a'..'z' |'A'..'Z' | '0'..'9')+ ;
我想下面的选项摆脱上述问题,但是这给可达代码编译时间问题我产生lexer.java
OTHER : . {throw new RuntimeException("unknown char: '" + $text + "'");};
感谢, 阿希什
我决定添加此代码的问题。 @lexer :: members { \t \t public void recover(RecognitionException re){ \t \t \t \t System.out。println(“lexer memeber recover”); \t \t \t \t throw new RuntimeException(re); \t \t} } – user1836974