《编译原理》构造 LL(1) 分析表的步骤 - 例题解析
易错点及扩展:
1、求每个产生式的 SELECT 集
2、注意区分是对谁 FIRST 集 FOLLOW 集
3、开始符号的 FOLLOW 集包含 #
4、各集合对对应的对象以及含义
集 | 对象 | 含义 |
---|---|---|
FIRST 集 | 是对产生式右部 | 右部内部的所有终结符集,可能为 ε |
FOLLOW 集 | 是对产生式左部(非终结符) | 非终结符后面紧跟的终结符,可能为 #,和该非终结符推导出的右部无关(因为LL(1)文法不包含递归,所以右部不会再有该非终结符,所以不能通过该右部判断该非终结符后跟集合) |
SELECT 集 | 是对产生式 | 需要考虑产生式右部的不同情况,进一步确定是根据 FIRST 集还是 FOLLOW 集 |
5、SELECT 集的定义
注: 注意区分 FIRST 集 FOLLOW 时是对 α 还是 A
给定文法 G,对于产生式 A→α,α ∈ V*,则可选集 SELE