不幸的是,当规则传递参数时, ANTLR不可能支持直接左递归。唯一可行的选择是删除左递归。有没有办法删除以下语法中的左递归?
a[int x]
: b a[$x] c
| a[$x - 1]
(
c a[$x - 1]
| b c
)
;
问题在于涉及左递归的第二种选择。任何形式的帮助将不胜感激。
不幸的是,当规则传递参数时, ANTLR不可能支持直接左递归。唯一可行的选择是删除左递归。有没有办法删除以下语法中的左递归?
a[int x]
: b a[$x] c
| a[$x - 1]
(
c a[$x - 1]
| b c
)
;
问题在于涉及左递归的第二种选择。任何形式的帮助将不胜感激。