# 七、基于语法树的词法分析和解析

在上一章节中，你探索了如何从各类来源中读取 Python 文本。接下来其需要被转换为编译器可以使用的结构，这个过程被称为**解析（parsing）**：

<figure><img src="https://1029588898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJhewUmzI3BNeGgeFH9Rv%2Fuploads%2Fgit-blob-f37c42bc5889b82d34b0abfd55d78fa3ae0f8b51%2F7.0.1%20%E8%A7%A3%E6%9E%90%E8%BF%87%E7%A8%8B.png?alt=media" alt=""><figcaption></figcaption></figure>

在本章节，你将继续探索文本是如何被解析为一个可以编译的逻辑结构。

CPython 会使用\*\*具象语法树（CST）**和**抽象语法树（AST）\*\*两种结构来分析代码。

<figure><img src="https://1029588898-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FJhewUmzI3BNeGgeFH9Rv%2Fuploads%2Fgit-blob-ebf27feb13de99f5ab9740e1b6eea06b455e41be%2F7.0.2%20CPython%E4%BD%BF%E7%94%A8CST%E5%92%8CAST%E6%9D%A5%E8%A7%A3%E6%9E%90%E4%BB%A3%E7%A0%81.png?alt=media" alt=""><figcaption></figcaption></figure>

解析过程分为两部分：

1. 使用\*\*解析器-分词器（parser-tokenizer）**或者**词法分析器（Lexer）\*\*创建具象语法树；
2. 通过使用\*\*解析器（parser）\*\*从具象语法树创建出抽象语法树。

这两个步骤是许多语言中都会使用到的常见范式。
