社区
下载资源悬赏专区
帖子详情
ll(1)判别下载
weixin_39821526
2020-04-20 05:30:24
判别语法是不是ll(1),并能给出语法树。
相关下载链接:
//download.csdn.net/download/xiaofkg/394742?utm_source=bbsseo
...全文
12
回复
打赏
收藏
ll(1)判别下载
判别语法是不是ll(1),并能给出语法树。 相关下载链接://download.csdn.net/download/xiaofkg/394742?utm_source=bbsseo
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LL
(1)文法的
判别
以及非
LL
(1)文法的转换(完整可运行代码)
本程序的所用的存储结构都是string类型的,最主要的存储文法的数据结构为自定义结构,里面包括一个产生式的左部,右部以及select集合,至于非终结符的first和fo
ll
ow集合,则是定义了一个string类型的数组进行存储。 本程序的求first,fo
ll
ow,select集合的算法即为书上所介绍的方法,即求first的集合时,只看本产生式,求fo
ll
ow集合时,要进行递归查找一个非终结符的所有后跟字符,求select其实就是对first与fo
ll
ow集合的运算,最终根据所有的select集合,便可以判断此文法是否为
LL
(1)文法。 对于不是
LL
(1)文法的产生式,本程序在判断后进行转换,先进行消除左递归,然后提取左公因子,在这两步的每一步结束之后,都要对产生式进行整合,去掉空存储,去掉无法到达的产生式,将select全部置空。 每进行一次非
LL
(1)到
LL
(1)的转换之后,都要对其文法性质进行判断,如果是
LL
(1),则跳出,不是则继续,但是当循环一定次数之后仍不是,程序判定其无法转换,也要跳出。 其中还有对第一个非终结字符的右部替换与否进行选择,原因是,有些通过替换就可以很方便的进行转换,这个要通过人为进行输入。 提取公因子中也有上一段所说的类似的判断机制,目的是为了防止文法的左公因子无法提取完的情况出现。 最终有三种结果,一种是是
LL
(1)文法,一种是不是
LL
(1),但是经过转换变成了
LL
(1),还有一种是经过转换也无法变成
LL
(1)。 输入文本格式样例: A A->ad A->Bc B->aA B->bB
LL
(1)文法判断程序
1. 实验内容 1、 让计算机接受一个文法,示例如(仅供参考): G[S] 为: S→AB S→bC A→ε A→b B→ε B→aD C→AD C→b D→aS D→c 2、 编程实现对上述文法是否是
LL
(1)文法的判断,是则给出肯定回答,否则给出否定回答。 3、
判别
是否是
LL
(1)文法 。。。。。。
用Java编写的
LL
(1)文法
判别
包括预测分析的文法
判别
,求first 和fo
ll
ow 都有了
LL
(1)文法
判别
,串检测
编译原理程序设计
LL
(1)文法检测 串检测
ll
(1)
判别
判别
语法是不是
ll
(1),并能给出语法树。
下载资源悬赏专区
13,654
社区成员
12,574,373
社区内容
发帖
与我相关
我的任务
下载资源悬赏专区
CSDN 下载资源悬赏专区
复制链接
扫一扫
分享
社区描述
CSDN 下载资源悬赏专区
其他
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章