在清华大学出版社的编译原理与技术第二版,第4章第2.3节给出了一个理论解决方案:
1.求出文法所有非终结符号的First集,
2.求出文法所有非终结符号的Follow集,
3.进行两步判断:
(1)非终结符号A的任何两个候选式的first集合不相交
(2)f若A的某个候选式可以推导出ε,则其它候选式的First集与Follow(A)不相交。
满足以上两个条件的文法一定是非二义性的。
如果一个文法有唯一的左递归或右递归,那么就不具有二义性。
2024-02-08 08:25:46
在清华大学出版社的编译原理与技术第二版,第4章第2.3节给出了一个理论解决方案:
1.求出文法所有非终结符号的First集,
2.求出文法所有非终结符号的Follow集,
3.进行两步判断:
(1)非终结符号A的任何两个候选式的first集合不相交
(2)f若A的某个候选式可以推导出ε,则其它候选式的First集与Follow(A)不相交。
满足以上两个条件的文法一定是非二义性的。
如果一个文法有唯一的左递归或右递归,那么就不具有二义性。