📜  自顶向下解析器的分类

📅  最后修改于: 2021-09-28 10:27:38             🧑  作者: Mango

解析分为两类,即自顶向下解析和自底向上解析。自上而下的解析基于最左派生,而自下而上的解析依赖于反向最右派生。

构建从根开始向下到叶子的解析树的过程是自顶向下解析。

  • 自上而下的解析器从没有歧义和左递归的语法中构建。
  • 自顶向下解析器使用最左推导来构建解析树。
  • 它允许没有左因子分解的语法。

自顶向下解析的分类——

  1. 使用回溯:蛮力技术
  2. 没有回溯: 1.递归下降解析
    2. Predictive Parsing or Non-Recursive Parsing or LL(1) Parsing or Table Driver Parsing

蛮力技术或递归下降解析 –

  1. 每当非终端第一次使用时,就选择第一个选项并与给定的 I/P 字符串进行比较
  2. 如果没有发生匹配,则使用第二个选项并与给定的 I/P 字符串进行比较。
  3. 如果再次未找到匹配,则选择替代方案,依此类推。
  4. 此外,如果匹配出现至少一个选项,则 I/P字符串解析成功。

LL(1) 或表驱动程序或预测解析器 –

  1. 在 LL1 中,第一个 L 代表从左到右,第二个 L 代表最左派生。 1 代表解析器在解析句子时使用的 Look Aheads 标记的数量。
  2. LL(1) 解析是从没有左递归、公共前缀和歧义的语法构建的。
  3. LL(1) 解析器依赖 1 个前瞻符号来预测产生式以扩展解析树。
  4. 这个解析器是非递归的。