闲来无事,就把龙书拿出来有看了看,把最近学的总结一下。
FIRST(X)集合定义:可从X推导得到的串的首符号的集合,其中X是任意文法符号。如果X=>······=>ε ,那么ε也在FIRST(X)中。(定义来自龙书)
算法伪代码(非准确版):
foreach(nonterminal N)
FIRST(N) = {}
while(some set is changing)
foreach (production p: N->β1 … βn)
if (β1== a …)
FIRST(N)∪= {a}
if (β1== M …)
FIRST(N)∪= FIRST(M)</span>