如何强制通过 GLR 方法解决 shift\reduce 冲突?
假设我希望解析器为自己解决右移运算符和模板参数的两个右尖括号之间的冲突。我让词法分析器将 2 个连续的“>”符号作为单独的标记传递,而不将它们合并为一个“>>”标记。然后我将这些规则放在语法中:
operator_name:
"operator" ">"
| "operator" ">" ">"
;
Run Code Online (Sandbox Code Playgroud)
我希望这是一个转变\减少冲突。如果我有具有左结合性的 ">" 的标记声明,则不会发生冲突。所以我必须删除标记优先级\关联性声明,但这会导致许多其他冲突,我不想通过为每个冲突规则指定上下文优先级来手动解决这些冲突。那么,有没有办法在声明令牌的同时强制转换\减少冲突?