404_1@
解析(语法) (sytanx)
语法解析模块开始以字符流的形式阅读源码
标记有意义的字符串序列(
token@H_404_1@),例如目标源码中的
token@H_404_1@包括
let@H_404_1@、
a@H_404_1@、
=@H_404_1@、
123@H_404_1@、
;@H_404_1@ (词法分析)
利用语法分析模块组合
token@H_404_1@间的关系,生成相应的节点(
Node@H_404_1@,
Identifier@H_404_1@...) (语法分析)
结构大概如下,忽略Position、Scope等等其他信息;
- Program
- body [{
- VariableDeclaration (kind:let)
- declarations [{
- VariableDeclarator
- id (name:"a")
- init (value:"123")
}]
}]@H_404_1@
转换 (transform)
这里转换成es5实际上就是把let@H_404_1@转换成
var@H_404_1@
Program.body[0].kind = "var"@H_404_1@
- Program
- body [{
- VariableDeclaration (kind:var)
- declarations [{
- VariableDeclarator
- id (name:"a")
- init (value:"123")
}]
}]@H_404_1@
生成
var a = 123;@H_404_1@
DONE!
参考文献与相关网址