要將文法修改為定義通常習慣的數學運算式優先次序(先乘後加)以及左結合性,可以按照以下方式修改文法:
```
<Expr> → <Expr> + <Term> | <Term>
<Term> → <Term> * <Factor> | <Factor>
<Factor> → a | b | c
```
這樣的修改使得在表達式中先出現的乘法操作會優先計算,而加法操作會在乘法操作之後進行。這符合了通常習慣的數學運算法則。
這個修改後的文法保持了左結合性,因為每個非終端符號(Expr、Term和Factor)都可以根據自己的規則進行遞歸展開,並且操作符的組合是從左向右進行的。
這個改正後的文法能夠清晰地定義先乘後加的優先次序,並確保了左結合性。