ANTLR 文法を解析する非常に単純な XML (HTML) があります。
wiki: ggg+;
ggg: tag | text;
tag: '<' tx=TEXT { System.out.println($tx.getText()); } '>';
text: tx=TEXT { System.out.println($tx.getText()); };
CHAR: ~('<'|'>');
TEXT: CHAR+;
このような入力で:"<ggg> fff"
正常に動作します。
しかし、空白を扱い始めると失敗します。例えば:
" <ggg> fff "
- 最初から失敗する"<ggg> <hhh> "
- 後に失敗する<ggg>
"<ggg> fff "
- 正常に動作します"<ggg> "
- 最後に失敗する
何が悪いのかわかりません。これを処理するための特別な文法オプションがあるかもしれません。ANTLRWorks は私にNoViableAltException
.