
C语言中的编译求first集合
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文介绍在C语言编程中如何通过编译阶段计算词法规则的First集,以实现更高效的语法分析。
求出所有文法符号的FIRST集合算法如下:
1. 若X是终结符,则FIRST(X)={X}。
2. 若X是非终结符,并且有产生式 X→a ,则 a 属于 FIRST(X)。
3. 若X是非终结符,且存在产生式 X→ε,则 ε 属于 FIRST(X)。
4. 若X是非终结符,且存在产生式 X→Y1 Y2 …… Yn。如果Y1, Y2, …… Yi-1 都能推导出空串(ε),而Yi不能推出空串,则FIRST(Y1)-{ε}, FIRST(Y2)-{ε}……FIRST(Yi-1)-{ ε}, 和 FIRST(Yi)都属于 FIRST(X)。
5. 当4中的所有Yi都能推导出空串时,(即 i=1, 2,…., n),则FIRST(X)=FIRST(Y1) ∪ FIRST(Y2) ……∪ FIRST(Yn).
6. 反复使用以上规则,直到每个符号的FIRST集合不再增大为止。
全部评论 (0)
还没有任何评论哟~


