Antlr 错误(211):[fatal]规则条件具有非LL(*)
我使用ANTLR创建语法,但我得到了这个错误Antlr 错误(211):[fatal]规则条件具有非LL(*),antlr,grammar,antlr3,antlrworks,Antlr,Grammar,Antlr3,Antlrworks,我使用ANTLR创建语法,但我得到了这个错误 error(211): [fatal] rule conditions has non-LL(*) decision due to recursive rule invocations reachable from alts 1,2. Resolve by left-factoring or using syntactic predicates or using backtrack=true option. 我的语法规则: conditions
error(211): [fatal] rule conditions has non-LL(*) decision due to recursive rule invocations reachable from alts 1,2. Resolve by left-factoring or using syntactic predicates or using backtrack=true option.
我的语法规则:
conditions
: '(' conditions ')'
| condition (C_BINARY_OPERATOR conditions)?
;
condition
: expression C_CONDITIONAL_OPERATOR expression
;
expression
: (term) (('+'|'-') term)*
;
term
: (factor) (('*' | '/') factor)*
;
factor
: C_ID
| C_NUMBERS
| '(' expression ')'
;
// Binary Operators for Logical Calculation
C_BINARY_OPERATOR
: '&&'
| '||'
;
// Conditonal Operators
C_CONDITIONAL_OPERATOR
: '>'
| '<'
| '=='
| '!='
| '=<'
| '=>'
;
条件
:“(“条件”)”
|条件(C_二进制_运算符条件)?
;
条件
:表达式C_条件_运算符表达式
;
表达
:(术语)((“+”|“-”)术语)*
;
学期
:(系数)((“*”|“/”)系数)*
;
因素
:C_ID
|C_数
|“(“表达式”)”
;
//用于逻辑计算的二进制运算符
二元算子
: '&&'
| '||'
;
//条件算子
C_条件_算子
: '>'
|“嗯,错误的确是说“通过左因子分解或使用语法谓词或使用backtrack=true选项来解析”。这令人困惑吗?请参见ANTLR网站上的内容。它包含有关如何修复错误的信息