笔记:LL1分析


FIRST 集合

1.(终结符规则)终结符的FIRST集合是它本身。
2.(空规则)如果X→ε是一个产生式,就把ε加入X中。
3.(空传播规则)对于一个产生式
X -> Y1 Y2 ... Yi ... Yk
遍历右部,将FIRST(Y1)中ε除外的元素加入FIRST(X),然后看Y1能不能推出空,如果能,就将FIRST(Y2)中ε除外的元素加入FIRST(X)(),然后看Y3能不能推出空。。。直到Yi不能推出空。将FRIST(Yi)中ε除外的元素加入FIRST(X)后,便结束。
如果所有的Y都可以推出空,就将ε加入FIRST(X)。

A能推出空 <=> ε∈FIRST(A)

求出FIRST集合后可按此规则检查。

一个序列的FIRST集合

同求FIRST集合的第2步

FOLLOW集合

FOLLOW集合不能包含ε!
1.(EOF规则)$在FOLLOW(S)中。
2.(取FIRST规则)如果存在一个产生式A→αBβ,则将FIRST(β)的非空元素加入FOLLOW(B)中。
3.(取FOLLOW规则)如果存在一个产生式A→αB,或者存在产生式A→αBβ且FIRST(β)包含ε,那么FOLLOW(A)中的所有符号都在FOLLOW(B)中。

预测分析表

对于每条产生式A→α:
1.(FIRST规则) 对FIRST(α)中的所有终结符a,M[A,a]=A→α。
2.(FOLLOW规则)如果空属于FIRST(α),则对FOLLOW(A)中的所有终结符a,M[A,a]=A→α。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM