Если у вас есть грамматик так:Когда круглые скобки используются в EBNF?
<assign> → <id> = <expr>
<id> → A | B | C
<expr> → <expr> + <term>
| <term>
<term> → <term> * <factor>
| <factor>
<factor> → (<expr>)
| <id>
И тогда предложение A = B + C * A, вы получите этот крайний левый вывод:
<assign> => <id> = <expr>
=> A = <expr>
=> A = <expr> + <term>
=> A = <term> + <term>
=> A = <factor> + <term>
=> A = <id> + <term>
=> A = B + <term>
=> A = B + <term> * <factor>
=> A = B + <factor> * <factor>
=> A = B + <id> * <factor>
=> A = B + C * <factor>
=> A = B + C * <id>
=> A = B + C * A
Но что относительно A = B + (C * A)?
Я не могу найти ошибку в коде Джеймса, поэтому я должен быть неправильно –