一、compiler过程
compiler过程就是把源代码(template)转换为目标代码(render)
三个核心步骤:
- 解析(parse):template模版生成AST
- 转化(transform):AST转换为Javascript AST
- 生成(generate):通过Javascript AST生成render
AST: 抽象语法树,就是将代码通过一种对象的方式存储下来
二、解析
有限状态机: 官方意思是:有限个状态以及在这些状态之间的转移和动作等行为的数据计算模型
主要三个特征为:
- 状态总数有限
- 任一时刻,一定只处于一种状态
- 某种条件下,一定会从一种状态转换为另一种状态
举个🌰:
<div>hello world<div>
该模版主要包含状态为开始标签状态,文本状态,结束标签状态,当前处理的只能是一个状态
通过有限状态机会生成一些token,再通过从上到下扫描token,借用栈,生成一个AST树