1. 分词/词法分析
将由字符串组成的字符串 分解为 有意义的代码块。
2. 解析/语法分析
将词法单元流(数组),转换为一个由元素逐级嵌套的所组成的程序语法树,这棵树也成为AST抽象语法树.
3. 代码生成
将AST转换为可执行的代码的这个过程,称为代码生成。简单来说就是某种方法来将AST语法树转换为机器指令,用来创建,分配内存等.并且将值存储.
例子
var a = 2
AST语法树
{
"type": "Program",
"start": 0,
"end": 189,
"body": [
{
"type": "VariableDeclaration",
"start": 179,
"end": 188,
"declarations" : [
{
"type": "VariableDeclarator",
"start": 183,
"end": 188,
"id": {
"type": "Identifier",
"start": 183,
"end": 184,
"name": "a"
},
"init": {
"type": "Literal",
"start": 187,
"end": 188,
"value": 2,
"raw": "2"
}
}
],
"kind": "var"
}
],
"sourceType": "module"
}