语法分析1

消除左递归

步骤一、
直接改写
先将产生式格式转换到合并
在这里插入图片描述
然后直接改写

步骤二、
循环替换 将间接递归改为直接递归
在这里插入图片描述
然后改写,注意 必须先做完直接改写然后做间接改写

然后在改写的某一个循环中,从第一个替换后第二个去替换··············。

消除回溯

回溯产生的原因
在这里插入图片描述

在这里插入图片描述

FIRST集里面有空
在这里插入图片描述

LL1文法的FISRT FOLLOW集定义

在这里插入图片描述

FIRST集求法

在这里插入图片描述

在这里插入图片描述

Follow集求法

在这里插入图片描述
FISRT集中的非空元素
若空则找父亲的follow集

在这里插入图片描述

将非LL1文法改造为LL1

在这里插入图片描述

递归子程序法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在写子程序的时候,如果当前的是 非终结则 询问 是否in Y
N
如果当前是终结符号则写 是否等于
在进入P之前要考虑已经read了 就是子程序在退出前要read下一位
$ 不用在子程序里考虑,而是结束后外部程序考虑

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值