构造SLR(1)分析器
<1> 活前缀与LR(0)项目
第1步 第2~N步 状态
词法--DFA ε-closure(S) ε-closure(smove(S,a)) 状态集
语法--DFA closure(I) closure(goto(I,x)) 项目集
出现在移进-归约分析器栈中的右句型的前缀,被称为文法G的活前缀(viable prefix).
LR(0)项目(简称项目)是这样一个产生式,在它右边的某个位置有一个点"."。对于A→ε,它仅有一个项目A→.。
项目A→α.β显示了分析过程中看到(移进)了产生式的多少。
β不为空的项目称为可移进项目,β为空的项目称为可归约项目.
<2> 拓广文法与识别活前缀的DFA
G' = G ∪ {S' → S}
其中:S' → S是识别S的初态,S' → S. 是识别S的终态. 目的是使最终构造的DFA状态集中具有唯一的初态和终态. ① closure(I):从项目集I不经任何文法符号到达的项目全体;
② goto(I,x):所有从I经文法符号x能直接到达的项目全体。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
添加我为好友,拉您入交流群!
请使用微信扫一扫!