当前位置: 代码迷 >> 综合 >> 编译器-parser
  详细解决方案

编译器-parser

热度:58   发布时间:2023-12-05 23:34:34.0

编译器

在这里插入图片描述

在这里插入图片描述
上下文无关语法(content free grammar)
https://www.zhihu.com/question/21833944

在这里插入图片描述

多义性

在这里插入图片描述

解决方案

1 Recursive Descent
在这里插入图片描述
在这里插入图片描述
从左边的约束条件中选取规则,进行递归下降分解
优点是好写,缺点是有时候陷入局部满足,导致整体不能解析,比如int t = 5 + 3,解析了int t = 5 ,剩下+3,导致错误(因为解析的时候,采取规则的顺序导致)
在这里插入图片描述
前面几条规则就放回true了。

在这里插入图片描述
在这里插入图片描述
(Left Recursion)
在这里插入图片描述
RD在处理左递归的时候会出现问题,可以转换为右递归
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2 Predictive Parsing

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  相关解决方案