/

本页目录

处理管线 - 词法分析

主要包:core.lexer

词法分析(Lexing)就好比在理解一个句子的含义之前,先把它拆分成一个个单独的词语。想象你正在阅读一段文字,在领会其含义之前,你会先辨认出其中的名词、动词和标点符号等独立的词。

在 Quarkdown 中,词法分析过程会扫描一个源文件(本质上就是一串字符),并将其切分为称为**词元(token)**的小片段。每个词元代表一种不同的元素,例如标题、段落或加粗文本,并存储着基本的信息,例如它的类型、在文本中的位置,以及它的文本内容(词素 lexeme)。

Markdown 会识别两大类词元:块(block)**词元与行内(inline)**词元。二者的区别在于这些元素在文档中的结构化方式:

为了实现这种分离,系统提供了两个不同的词法分析器:一个块词法分析器和一个行内词法分析器,分别提取对应的词元。

函数调用既会被提取为块,也会被提取为行内,二者之间仅有少许差异

最初,只会调用块词法分析器。一旦源文件被拆分成外层块,这些块就会被传递给解析器,由解析器负责搜索嵌套的信息。