我是 ANTLR 的新手,并尝试在 ANTLRWorks1.4.3 中遵循语法。
grammar TextGra;
element : starttag (element)* endtag
;
starttag: '<' TAGNAME '>';
endtag : '</' TAGNAME '>';
TAGNAME : ('a'..'z')|('A'..'Z')|('0'..'9');
WS : (' '|'\r'|'\n')+ {skip();} ;
当尝试像这样解析简单的 xml 片段时
<a><b><c></c></b></a>
丢失了最后两个 endtag 元素,如何处理这种情况?或者这是错误的方式?在我的情况下不能限制标记名称与其他 xml 解析代码相比。或者语法可以使用 $0 来引用以前匹配的标记吗?(如在正则表达式中)。在这种情况下,通过前一个匹配的开始标签来决定结束标签中的标签名。谢谢大家的回复!