我注意到我不能写这样的规则:
ausdruck: label=ausdruck 'x' #One
| label='foo' #Two
;
它给出了以下错误:
标签“标签”类型与之前的定义不匹配:TOKEN_LABEL!=RULE_LABEL
看起来这是因为一次标签引用解析器规则,一次引用词法分析器规则。如果我稍微改变规则:
ausdruck: label=ausdruck 'x' #One
| label2='foo' #Two
;
一切正常。但为什么?我的第一次尝试有什么问题?