我有非常简单的 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
.