我想知道如何消除语法中的epsilon-productions:
S → S0
S → 1
S → AB
B → AC
A → ε
C → ε
我知道因为C → ε
和A → ε
我们必须重写:
B → AC
as:
B → A | C | AC
和S → AB
为
S → A | B | AB
但是生产A → ε
和C → ε
似乎消除了状态A,B和C,只留下了作品:
S → S0 | 0
S → 1
我说错了吗?
答案 0 :(得分:0)
是。你是对的。
这就是我得到的:
S → S0
S → 1
S → AB
B → AC
A → ε
C → ε
删除A,B,C后,因为它们全部转到epi。
S → S0
S → 1
S → ε
去除S→ε意味着重写S→S0以包括所有可能的结果,即S0 |离开:
S → S0 | 0
S → 1