描述 - 考虑文法 E → E + T | T T → TF | F F → F * | a | b。解决方案步骤1 - 构造增广文法并编号产生式。(0) E′ → E(1) E → E + T(2) E → T(3) T → TF(4) T → F(5) F → F ∗(6) F → a(7) F → b。步骤2 - 查找闭包和 goto 函数以构造 LR(0) 项目。方框代表新状态,圆圈代表重复状态。FOLLOW 的计算我们可以找出 FOLLOW(E) = {+, $} FOLLOW(T) = {+, a, b, $} FOLLOW(F) = {+, *, a, b, $} 输入字符串 a * b + a 的解析 - 堆栈 ... 阅读更多
解析器是编译的第二阶段。解析器将其输入作为从上一阶段(即词法分析阶段)生成的标记,并将它们组合起来,以便可以识别它们的语法。例如,考虑 I0 I0 - E′ → ∙ E E → ∙ E + T E → ∙ T T → ∙ T ∗ F T → ∙ F F → ∙ (E) F → ∙ id 填充移位条目在 SLR 解析表构建算法的规则 (2a) 上应用于一组 ... 阅读更多