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 + "'");};
ありがとう、アシッシュ