我一直在避免移位/减少错误。现在终于我想我遇到了我的对手。
Int[] a
a[0] = 1
问题是 int[] 被定义为
Type OptSquareBrackets
而 a[0] 被定义为
Var | Var '[' expr ']'
Var 和 Type 都被定义为 VAR ,它是任何有效的变量[a-zA-Z][a-zA-Z0-9_]
。除了添加一个虚拟令牌(例如**Decl** Type OptSquareBrackets
代替)之外,还有没有办法写这个没有冲突?从这条规则中,我得到 1 个 shift/reduce 和 1 个 reduce/reduce 警告。