我有非常简单的 XML (HTML) 解析 ANTLR 语法:
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.