※最左推導和最右推導
(每一步替換最左邊的非終結符/每一步替換最右邊的非終結符),最右推導稱爲規範推導。最右推導對應於最左規約(規範規約)
例:
文法:
S--->AB
A--->a|t
B---->+CD
C--->a
D---->a
最右推導:
S--->AB---->A+CD--->A+Ca---->A+aa----->a+aa
最左推導:
S---->AB----->aB--->a+CD--->a+aD----->a+aa
※語法樹:
例
文法:
相應的語法樹:
(這是最右推導的語法樹)
※文法的二義性:
給定一個文法G,如果L(G)中存在一個具有兩棵或兩棵以上分析樹的句子, 我們就稱該文法爲二義性的,G也叫二義性文法。
對於以下文法:
對於id+id*id的串,有兩個分析樹與之對應
造成二義性的原因是:文法中沒有體現出結合率和優先級