For a compilation project, my group and me are defining a grammar with Antlr. We have currently a problem with theses rules :
expr: ...
| lvalue expr3 expr2
| ID '('exprList')' expr2
|... ;
lvalue: ID lvalue2;
lvalue2: '.' ID lvalue2
| '[' expr ']' lvalue2
| ;
As you can see, lvalue can result in ID, which lead to a non-LL() grammar. So my question is: how can we modify the grammar so as to make it LL() without permitting extra stuff.
Thank you in advance !