【发布时间】:2015-06-19 15:55:48
【问题描述】:
我收到错误消息:The following sets of rules are mutually left-recursive [symbolExpression]。在我的语法中,symbolExpression 是直接左递归的,所以 ANTLR4 不应该处理这个吗?
以下是我的解析器的相关部分:
operation:
OPERATOR '(' (operation | values | value | symbolExpression) ')' #OperatorExpression
| bracketedSymbolExpression #BracketedOperatorExpression
;
symbolExpression:
(operation | values | value | symbolExpression) SYMBOL (operation | values | value | symbolExpression);
bracketedSymbolExpression:
'(' (operation | values | value | symbolExpression) SYMBOL (operation | values | value | symbolExpression) ')';
list: '[' (operation | value) (',' (operation | value))* ']';
values: (operation | value) (',' (operation | value))+;
value:
NUMBER
| IDENTIFIER
| list
| object;
【问题讨论】: