I've got a grammar which I believe is ambiguous. I don't know how to eliminate the ambiguity and convert it to an unambiguous grammar.
expr ::= num | lvalue | incrop expr | expr incrop | expr binop expr | (expr)
lvalue ::= $expr
incrop ::= ++ | --
binop ::= + | - |
num ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
And This is what I came up with:
expr ::= num expr' | lvalue expr'| incrop expr expr' | (expr) expr'
expr' ::= incrop expr' | binop expr expr' | empty
lvalue ::= $expr
incrop ::= ++ | --
binop ::= + | - |
num ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
is it correct?