Consider this BNF grammar:
<assign> = <id> = <expr>
<id> = A|B|C
<expr> = <id> + <expr>|<id> * <expr>|(<expr>)|<id>
This grammar is not ambiguous, since only one parse tree can be drawn for a statement.However, this clearly does not follow operator presedence rules.Operators *,+,() have the same precedence.Is this grammar unambiguous, or is it only not ambiguous? If it is unambigious, so a grammar can be unambigious without following the operator associativity and precedence rules,is that true?