【问题标题】:Grammar question, problem with FIRST语法问题,FIRST 问题
【发布时间】:2011-05-17 11:38:11
【问题描述】:

考虑以下语法:

A → BC
B → Ba | epsilon
C → bD | epsilon
D → …
…

这里的问题是规则B 可以派生epsilon 和左递归。

为了找到FIRST(A),我正在搜索FIRST(B)
但我坚持使用FIRST(B),因为它是左递归的。

那么FIRST(B) 是什么?还有FIRST(A)?
我的版本是:

FIRST(B) → {a, epsilon}
FIRST(A) → {a, b, epsilon}

对吗?

【问题讨论】:

    标签: grammar


    【解决方案1】:

    是的,你没看错。左递归对 FIRST 没有贡献,因为当 BaB 匹配时,Ba 中的 B 必须以 B 可以开始的东西开头 - 因为它是 B,之后全部。 :)

    您也可以先考虑左递归。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-15
      相关资源
      最近更新 更多