[antlr-interest] Left recursive grammar
Luigi Iannone
iannone at cs.manchester.ac.uk
Thu Jul 21 06:00:28 PDT 2011
Hi all,
I have this simple grammar
grammar test;
options {
language = Java;
output = AST;
}
a
:
a*B ->^(B a*)
| A
;
B :
'.B'
;
A :
'A'
;
and I get the following output when I try to generate the parser in ANTRLWorks
[13:48:53] error(210): The following sets of rules are mutually left-recursive [a]
I read on the Web that there are solutions to solve this, however they will mess up the associativity, which I need to keep instead.
So, for instance, for the input
A.B.B
the AST tree should be
^(B ^(B A))
Is there any way to change the grammar in order to eliminate the left recursion and obtain the above tree. I am afraid I do not get how to do it by just looking at what is there online about left recursive grammars.
Thanks a lot for your help,
Luigi
More information about the antlr-interest
mailing list