レクサーで例外をキャッチするにはどうすればよいですか?パーサにはルールが失敗した(または指定された入力ストリームとの不一致)されている場合ANTLRは例外をスローします、我々は簡単にこのexception.CatchにAntlr3.Refでレクサーで例外をキャッチすることができます:Error handeling in antlr 3.0 ...Antlr3のレクサーで例外をキャッチ
attribute :
Value1 integer1["Value1"] { System.out.println("Accepted"); }
| Value2 integer2["Value2"] { System.out.println("Accepted"); }
;
catch[Exception e] {System.out.println("General error Reported");}
を
それは私がレクサー自身で例外をキャッチすることができますどのようにparser.Butに動作します?.Sayをパーサに私は
str:STRING|DIGIT;
とレクサーSTRINGのようにルールが
STRING : ('"' 'a'..'z' '"');
のように定義されたのです
私の入力ストリームは "God" ....二重引用符が見当たらない場合や、余分な二重引用符を入れた場合、その例外はレクサー自体にキャッチされる必要があります...これを行う方法はありますか?出来ますか?