follow集计算
来源:互联网 发布:安卓优化软件 编辑:程序博客网 时间:2024/06/16 06:04
计算所有非终结符号A的follow(A)集合时,不断应用下面的规则,直到再没有新的终结符号可以被加入到任意的follow集合中为止。
(1)将$放到follow(S)中,其中S是开始符号,而$是输入右端的结束标记。
(2)如果存在一个产生式A→αBβ,那么first(β)中除ε之外的所有符号都在follow(B)中。
(3)如果存在一个产生式A→αB,或存在产生式A→αBβ且first(β)包含ε,那么follow(A)中的所有符号都在follow(B)中。
下面举个例子来说明下,假设有如下文法:
①E→TE'
②E'→+TE' | ε
③T→FT'
④T'→*FT' | ε
⑤F→(E)| id
对于每个非终结符号,我们都可以求出其follow集:
根据(1),首先将$加入到follow(E)中,即follow(E)={$},由⑤可知,)也应该在follow(E)中,即follow(E)={$,)};
对于E',根据规则(3)以及产生式①,应该将follow(E)加入到follow(E‘)中,即follow(E')={$,)};
对于T,根据规则(2)以及产生式①,应该将first(E')加入到follow(T)中,即follow(T)={+},根据规则(3),由于first(E')包含ε,所以应该将follow(E')加入到follow(T)中,即follow(T)={+,$,)};
对于T',根据规则(3)以及产生式③,应该将follow(T)加入到follow(T‘)中,即follow(T')={+,$,)};
对于F,根据规则(2)以及产生式③,应该将first(T')加入到follow(F)中,即follow(F)={*},根据规则(3),由于first(T')包含ε,所以应该将follow(T')加入到follow(F)中,即follow(F)={*,+,$,)};
- follow集计算
- first集和follow集的计算
- 计算Follow集合
- 关于编译原理中的follow集的计算
- 求解FIRST & FOLLOW集
- FIRST集合FOLLOW集
- First, Follow 集
- First & Follow 集
- First集和Follow集,FirstVt集和LastVt集的计算
- 编程实现计算FIRST集和FOLLOW集C++之(一)处理候选式:多个右部
- FIRST集和FOLLOW集
- FIRST集和FOLLOW集
- FIRST集和FOLLOW集
- first集与follow集
- FIRST集和FOLLOW集
- first集与follow集
- FIRST集与FOLLOW集
- First集和Follow集
- 蓝桥杯之数组排序
- GDI GDI+ 的区别
- Docker学习笔记(二)-镜像
- 同步和异步例子(linux)
- JavaScript的引入及词法结构
- follow集计算
- 子容器居中, 父子容器宽高不定
- Kanzi学习之路(1):Kanzi的简介和安装
- java 调用webservice(xml格式交换)工具类
- 存储管理
- 【C#】数组
- 说说Android中的touch mode
- struct和typedef struct彻底明白了
- Oracle数据库之基本查询