AST是编译器前端的一个阶段,即将源代码输入到编译器后,首先通过词法分析器将代码分为一个个Token,然后通过语法分析器将Token转换为AST节点,最终生成AST。具体代码示例如下:
// 代码示例
const esprima = require('esprima'); // 引入esprima,一个JavaScript解析器库
const code = "const a = 1;"; // 代码字符串
const ast = esprima.parseScript(code); // 通过esprima解析代码字符串得到AST
console.log(ast); // 输出该代码字符串的AST
以上示例中,esprima是一个JavaScript解析器库,通过parseScript方法将代码字符串解析为AST节点树。可以看出,AST是由前端(这里指编译器前端,即词法分析器和语法分析器)定义的。