什么是 CLR (1) 解析器?

CLR 定义了规范的前瞻。CLR 解析使用 LR (1) 项的规范集合来构造 CLR (1) 解析表。与 SLR (1) 解析相比,CLR (1) 解析表的状态数更多。在CLR(1)中,它只能在前瞻符号中定位reduce节点。

CLR 解析器的工作


LR(1)语法项目集合的构建

它需要三样东西

  • 增强语法

  • 闭包函数

  • 转到函数

增强语法 它是一个新的语法 G',其中包含一个新的产生式

S′ → S 与给定语法 G 的所有其他产生式。

关闭

程序关闭(一)

begin
Repeat
for each item A → α ∙ B β, a in I,
   each production B → γ and
      each terminal b ∈ FIRST (β a)
If B → ∙ γ is not in I
Add B → ∙ γ, b to I
Until no more elements can be joined to I;
end

猜你喜欢