Skip to content

Latest commit

 

History

History
34 lines (17 loc) · 940 Bytes

introduction.adoc

File metadata and controls

34 lines (17 loc) · 940 Bytes

简介

理解词法分析和语法分析有助于理解 Elixir 代码执行过程。

词法分析

词法分析, 把文本输入转换成 Token 流。

词法分析器

Leex 可以生成基于正则表达式的词法分析器。

由 Leex 生成的词法分析器,读取文本输入,匹配文本与指定的正则表达式,若匹配成功,则执行关联的 Erlang 代码。

正则表达式

正则表达式是描述字符模式的工具。

语法分析

语法分析,把 Token 流转换成 AST。

BNF 文法

BNF 是上下文无关文法的标准, 用来描述 Token 流转换成 AST 的规则。

语法分析器

Elixir 的语法分析器是由 Yecc 生成,语法分析器基于语法规则识别语法上正确的输入。

手写词法分析器

Elixir 的词法分析器是手写的, 不是由 Leex 生成的,但是学习 Leex,有助于理解 Elixir 手写词法分析器。