我今天在antlr语法中看到了这一点,但我不确定它是什么意思。我希望谷歌让我搜索角色......
resultList:(STAR | attributeList |) - > ^(RESULT attributeList?STAR?);
注意第二个“|”角色没有右侧元素?这是什么意思?
感谢, 迪安
答案 0 :(得分:2)
它只是意味着它什么都不匹配。以下更详细的规则完全相同:
resultList
: STAR -> ^(RESULT STAR)
| attributeList -> ^(RESULT attributeList)
| /* nothing */ -> RESULT
;
我认为上面的版本更清晰,以后也更容易评估,因为没有两个可选子节点attributeList
和STAR
,您需要检查它们的存在。