递归下降解析器首先跟随

时间:2015-02-28 14:45:48

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

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

感谢。

1 个答案:

答案 0 :(得分:1)

递归下降解析器不一定是确定性的,即可以构造递归下降解析器,它无法决定在有限常量前瞻后选择哪个派生。

LL(k)解析器以递增方式构造一个解析树,每个新字符都将扩展解析树。

非确定性递归下降解析器可以构建一个解析树,在发生某个特征时会完全丢弃该解析树。

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

  • 解析PROLOG(回溯)
  • Packrat Parsing(带回忆录的回溯)