Рассмотрим эту грамматику BNF:
<assign> = <id> = <expr>
<id> = A|B|C
<expr> = <id> + <expr>|<id> * <expr>|(<expr>)|<id>
Эта грамматика не является неоднозначной, поскольку для оператора можно нарисовать только одно дерево разбора. Однако это явно не соответствует правилам прецедентности операторов. Операторы *, +, () имеют одинаковый приоритет. Является ли эта грамматика однозначной или только не однозначной? Если это однозначно, значит, грамматика может быть однозначной без соблюдения правил ассоциативности операторов и приоритетов, это правда?