LL(1)文法判断
来源:互联网 发布:少女内裤品牌 知乎 编辑:程序博客网 时间:2024/05/22 06:41
LL(1)文法判断
题型:
1.判断该文法是否是LL(1)文法?
2.若是,给出它的LL(1)分析表,否则说明理由。
概念:
对于产生式 A -> α | β
1.如果α、β均不能推导出ε(空语句),则 FIRST(α) ∩ FIRST(β) = ∅;
2.α 和 β 至多有一个能推导出 ε;
3. 如果 β经过0步或多步可以推导出 ε,则 FIRST(α) ∩ FOLLOW(A) = ∅。
关键:
求出各个候选式的FIRST集,以及各个语法变量的FOLLOW集
例子:
文法:
E -> TE'
E' -> +TE' | ε
T -> FT'
T' -> *FT' | ε
F -> (E) | id
解析:
1.根据定义3,只需考虑多于一个候选式的语法变量
FOLLOW(E') = FOLLOW(E) = { ), # }
FOLLOW(T') = FOLLOW(T) = FIRST(E') ∪FOLLOW(E) ∪ FOLLOW(E') = {+, ), #}
FIRST(+TE') = {+}
FIRST(*FT') = {*}
按照定义3:分析:
FIRST(+TE') ∩ FOLLOW(E') = ∅ 成立
FIRST(*FT') ∩ FOLLOW(T') = ∅ 成立
2.根据定义1,F-> (E) | id
FIRST((E)) = {(}
FIRST(id) = {id}FIRST((E)) ∩ FIRST(id) = ∅ 成立
3.根据定义2,全部满足
因此,该文法是 LL(1)文法
0 0
- LL(1)文法判断
- 如何判断文法是否是LL(1)文法
- LL(1)文法判定
- HDU1409-LL(1)文法
- LL(1)文法
- LL(1)文法生成器。
- LL(1) 文法
- LL(1) 文法分析器
- LL(1)文法
- LL(1)文法 JAVA
- LL(1)文法first集
- 如何判断文法是LL(1)SLR(1)LR(1)LALR(1)的?
- 编译原理之ll(1)文法判断和左递归问题
- 是不是所有的文法都可以化为LL(1)文法?
- LL(1)的一个文法分析
- LL(1)文法的判别[00原创]
- 预测分析表LL(1)文法
- LL(1)文法分析,自上向下
- Java基础之IO流知识点总结二
- iOS客户端实现 XMPP协议的步骤
- 【整理】HashMap的原理及遍历
- 10. Dubbo原理解析-Listener & filter
- ios开发 过程中的简单的数据的存取
- LL(1)文法判断
- iText生成条形码与二维码
- Linux系统负载详解
- vncserver的详细配置
- tableView分割线的长度设置
- 黑马程序员———基础预备知识
- 2、黑马程序员-C语言关键字、标识符和注释
- 实验五:树和二叉树实验——信管1133-09
- 使用SocketChannel的NIO客户机服务器通信示例。(转)