我有一个小问题一直困扰着我很长一段时间,我一直无法在网上找到合适的答案。
给定一个语法:
S = Sc | Eab | Db | b
D = EDcD | ca | ɛ
E = dE | DY
Y = Ed | Dad | ɛ
要找到第一组说 Y,所以 FIRST(Y),我是否正确假设它是这样的:
FIRST(Y)
= FIRST(Ed) ∪ FIRST(Dad) ∪ FIRST(ɛ)
= FIRST(E) ∪ (FIRST(D)\{ɛ}) ∪ FIRST(ad) ∪ {ɛ}
= FIRST(E) ∪ (FIRST(D)\{ɛ}) ∪ {a, ɛ}
现在的问题是如何找到 FIRST(E) 和 FIRST(D)?