※最左推导和最右推导
(每一步替换最左边的非终结符/每一步替换最右边的非终结符),最右推导称为规范推导。最右推导对应于最左规约(规范规约)
例:
文法:
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的串,有两个分析树与之对应
造成二义性的原因是:文法中没有体现出结合率和优先级