/
主要包:
core.parser、core.ast
承接词法分析 中引入的比喻:在从句子中提取出名词、动词和形容词之后,我们的大脑负责将它们联结起来,从中构建出信息。
解析器接收词元的序列,并将它们组织成一个称为抽象语法树(Abstract Syntax Tree, AST)*的树状结构,它定义了文档不同部分之间的关系。树中的每个元素被称为一个节点(Node)*。
Markdown 输入示例:
## 标题
这是一段 **加粗** 与 _斜体_ 文本。
- 项 1
- 项 2输出 AST:
AstRootHeading(depth=1)Text("标题")ParagraphText("这是 ")Strong("加粗")Text(" 与 ")Emphasis("斜体")Text(" 文本")UnorderedListListItemParagraphText("项 1")ListItemParagraphText("项 2")词法分析阶段只产生外层块,在本例中即为一个 HeadingToken、一个 ParagraphToken 以及一个 UnorderedListToken。
为了获取嵌套信息,解析器会分析每个词元,并开始深入搜索嵌套的块与行内内容: