【问题标题】:Recursive descent parser first and follow递归下降解析器先行后继
【发布时间】:2023-03-30 17:46:01
【问题描述】:

要实现递归下降解析器是需要第一个和后续集吗?如果是这样,您是否仍然可以在第一个和以下给出非唯一性的情况下构建递归下降? 我很难区分递归下降和 ll(1) 解析。

谢谢。

【问题讨论】:

  • LR 解析器 generators 需要 FIRST 和 FOLLOW 集。解析器本身不需要它们。

标签: parsing recursion compiler-construction compilation recursive-descent


【解决方案1】:

递归下降解析器不必是确定性的,即可以构造递归下降解析器,在有限常量前瞻后无法决定选择哪种推导。

LL(k) 解析器以增量方式构建解析树,每个新字符都会扩展解析树。

非确定性递归下降解析器可以构建一棵解析树,在出现某个字符时将其完全丢弃。

不一定是 LL(k) 的递归下降示例:

  • 在 PROLOG 中解析(回溯)
  • Packrat 解析(带记忆的回溯)

【讨论】:

    猜你喜欢
    • 2015-08-07
    • 1970-01-01
    • 2012-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多