[antlr-interest] How to remove mutual left recursion from this grammar?
Seref Arikan
serefarikan at kurumsalteknoloji.com
Wed Jan 4 09:34:31 PST 2012
Greetings,
This simple grammar represents a setup I could not fix. Obviously the
target is to create nested boolean statements, but I could not fix the
recursion. This pattern repeats in a larger grammar, so solving this will
help me fix more problems. Any clues that you can think of?
//--------------------------------------------------------------------------------
grammar testg;
rul : contains_expr ;
contains_expr: 'CONTAINS' contains_expression
//'CONTAINS' contains_or
;
contains_expression : class_expression
| contains_expression_boolean
|'(' contains_expression_boolean ')'
;
contains_expression_boolean : contains_expression 'OR' contains_expression
| contains_expression 'AND'
contains_expression
| contains_expression 'XOR'
contains_expression
;
class_expression
: ID
;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
Best regards
Seref
More information about the antlr-interest
mailing list