当antlr中没有右侧时|意味着什么
我今天在antlr语法中看到了这一点,但不确定它的意思。我希望谷歌能让我搜索字符 结果列表:(STAR |属性列表|)->^(结果属性列表?STAR?) 注意第二个“|”字符没有右侧元素?这是什么意思 谢谢,当antlr中没有右侧时|意味着什么,antlr,antlr3,Antlr,Antlr3,我今天在antlr语法中看到了这一点,但不确定它的意思。我希望谷歌能让我搜索字符 结果列表:(STAR |属性列表|)->^(结果属性列表?STAR?) 注意第二个“|”字符没有右侧元素?这是什么意思 谢谢, 迪恩这只是意味着它与任何东西都不匹配。下面这条稍微详细一点的规则的作用完全相同: resultList : STAR -> ^(RESULT STAR) | attributeList -> ^(RESULT attributeList) | /* no
迪恩这只是意味着它与任何东西都不匹配。下面这条稍微详细一点的规则的作用完全相同:
resultList
: STAR -> ^(RESULT STAR)
| attributeList -> ^(RESULT attributeList)
| /* nothing */ -> RESULT
;
我认为上面的版本更清晰,而且以后也更容易评估,因为没有两个可选的子节点,attributeList
和STAR
,您需要检查它们是否存在