0

我现在正在看龙书。

在第 2 章中,它解释了语法分析过程。我正在努力理解这个过程的全貌。通过阅读本书,我有时会对语法分析器中的事情发生的顺序感到困惑。

所以根据我的理解:

语法分析器包含语法定义,该定义使用上下文无关语法定义语法。这基本上是语法分析器的“第一部分”吗?那么语法分析器是否包含语法定义?

之后,词法分析器生成的标记进入语法分析器。然后,语法分析器通过 CFG 检查字符串输入是否有效,生成解析树。

而且据我了解,这个解析树最终会变成一个(抽象的)语法树(它包含的细节比解析树少)。这棵树将进入语义分析器。

有人可以确认我对语法分析器的大致“整体情况”理解是否正确且顺序正确?

4

1 回答 1

0

语法分析器包含语法定义,该定义使用上下文无关语法定义语法。

不。在表驱动的解析器中,它包含一个从语法生成并驱动解析器的表。在手写解析器中,代码结构强烈地反映了语法。在这两种情况下,说解析器实际上“包含”语法都是不正确的。它以某种方式根据语法解析输入。

这基本上是语法分析器的“第一部分”吗?

不,我不知道你从哪里得到“第一部分”。

那么语法分析器是否包含语法定义?

仅如上所述。

在那之后

不,那之前

词法分析器生成的标记进入语法分析器。语法分析器然后通过 CFG 检查字符串输入是否有效

正确的。

于 2014-02-24T22:21:41.523 回答