/
主要包:
core.lexer
词法分析(Lexing)就好比在理解一个句子的含义之前,先把它拆分成一个个单独的词语。想象你正在阅读一段文字,在领会其含义之前,你会先辨认出其中的名词、动词和标点符号等独立的词。
在 Quarkdown 中,词法分析过程会扫描一个源文件(本质上就是一串字符),并将其切分为称为**词元(token)**的小片段。每个词元代表一种不同的元素,例如标题、段落或加粗文本,并存储着基本的信息,例如它的类型、在文本中的位置,以及它的文本内容(词素 lexeme)。
Markdown 会识别两大类词元:块(block)**词元与行内(inline)**词元。二者的区别在于这些元素在文档中的结构化方式:
块是定义文档外层结构的段落。例如段落、列表、标题、代码块或引用。
# 一个标题
一个段落
> 一段引用
- 一个列表
- 由多个项组成行内是出现在块内部、且最常见于定义文本特征(如格式)的元素。例如加粗、斜体、等宽、链接和图片。
一段 **格式化** 的_文本_。为了实现这种分离,系统提供了两个不同的词法分析器:一个块词法分析器和一个行内词法分析器,分别提取对应的词元。
函数调用既会被提取为块,也会被提取为行内,二者之间仅有少许差异。
最初,只会调用块词法分析器。一旦源文件被拆分成外层块,这些块就会被传递给解析器,由解析器负责搜索嵌套的信息。