使用ANTLR v3构建语法时遇到问题
使用antlrworks-1.5.2-complete。
我正在寻找表示XML元素的语法规则。
必须测试start-和endtag中标记名的等价性(良好格式)。
在文章Parsing XML中给出了问题的解决方案,
但我更喜欢一种更简单的方式,例如可以使用Perl(RecDescent)或yacc / bison。
使用Perl模块Parse :: RecDescent可以通过规则解决问题
element: '<' name attributes '>' content '</' "$item[2]" '>'
$item[2]
带有字符串,由符号名称(2.部分作品)找到。
ANTLR中是否存在$item[2]
或$2
(yacc)这样简单的引用?
答案 0 :(得分:1)
ANTLR中是否存在如$ item [2]或$ 2(yacc)这样简单的引用?
没有
在ANTLR中,人们在使用谓词行走(解析)树或语法时会验证这一点:
element
: '<' open=NAME attributes '>' content '</' close=NAME '>'
{$open.text.equals($close.text)}?
;
attributes
: (NAME '=' STRING)+
;
content
: ...
;
NAME
: 'a'..'z'+ // not complete, of course!
;