侧边栏壁纸
  • 累计撰写 793 篇文章
  • 累计创建 1 个标签
  • 累计收到 1 条评论
标签搜索

目 录CONTENT

文章目录

自顶向下分析法

Dettan
2021-07-10 / 0 评论 / 0 点赞 / 129 阅读 / 347 字
温馨提示:
本文最后更新于 2022-07-23,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
当前非终结符根据当下的终结符选择当前非终结符某个展开式进行展开


自左向右
根据下一个token决定选用哪一个文法
存在的问题
左递归,会存在无限循环问题
P→Pa|b   (b 不以P开头)

转为

P→bP`
P`→aP`|空
还存在间接左递归问题,但是可以通过代入变成直接左递归. 下面算法直接一步到位,消除了环状递归 and 左递归 and 间接左递归
最好是让G排在最后

每一个式子都是只引用排序比自己靠后的, 所以没有环状递归.
式子里包含自己的话就会死循环
例子

回溯问题-此路不通
如果回溯的话会增大实现难度.
first集
非终结符的所有首个终结符的集合
用递归求, 如果A→Bc 那么first(A)包含first(B)
follow集
可以跟在这个符号后的终结符集合
算法
select集
first集和follow集就是为了计算select集
当A→空 时,select(A) = follow(A) ;
当A→Bc 时,select(A) = first(B) ;

预测分析表
select集要不相交才行. 提取公因子
最后用select集构建预测分析表

0

评论区