Left recursion [message #1012873] |
Fri, 22 February 2013 06:14  |
Eclipse User |
|
|
|
Hello everyone,
for this code i get a left recursion error, but i have no clue how to solve this.
I sit now on this problem over one week but no success.
...
Vardecl : 'int' name=ID ( ('[' size=INT ']') | init=Init? );
Objdecl : type=Objtyp name=ID ( ('[' size=INT ']') | '('attrasslist=Attrasslist? ')' );
Assstmt : var=Var '=' expr=Expr;
Array : '[' expr=Expr ']';
//Here starts now the Problem
Var : var=[Objdecl] array = Array? ('.' attribute = Attribute)
| var=[Vardecl] array = Array?;
Relop : '<' | '<=' | '>' | '>=' | '==' | '!=';
Expr : orexpr=Orexpr;
Orexpr : Andexpr ('||' andexpr+=Andexpr)*;
Andexpr : Relexpr ('&&' relexpr+=Relexpr)*;
Relexpr : Addexpr (Relop addexpr+=Addexpr)?;
Addexpr : Multexpr (('+' | '-') multexpr+=Multexpr)*;
Multexpr : Unaryexpr (('*' | '/') unaryexr+=Unaryexpr)*;
Unaryexpr : '!' Atom | Atom | '-' Atom ;
Atom : ref_obj1=[Objdecl] 'touches' ref_obj2=[Objdecl]
| value=INT
| ref_var=[Varname]
//If i delete this line it works
| '('expr=Orexpr ')';
|
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.07161 seconds