将语法G转换为LL(1)

时间:2014-12-01 15:19:10

标签: parsing grammar

我有以下语法,我需要将其转换为LL(1)语法

G = (N; T; P; S) N = {S,A,B,C} T = {a, b, c, d}
P = { 
S -> CbSb | adB | bc
A -> BdA | b
B -> aCd | ë
C -> Cca | bA | a 
}

关键是我知道如何转换它只是一个制作,但我找不到任何明确的方法来解决这个问题。

提前致谢!

1 个答案:

答案 0 :(得分:1)

  1. 删除左递归,直接和间接。
  2. 构建LA(k)表。如果没有歧义,语法(和语言)是LL(k)
  3. 语法中明显的左递归是:

    S ==> C... ==> C...