所述的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