当前位置:   article > 正文

JavaScript语法解析与抽象语法树(AST)----Espsrima的使用方法

esprima教程

前言

最近在分析微信小程序,需要统计以前代码中所使用过的wx.api。思路为对js文件进行语法分析,然后找出调用者为wx的成员表达式。

JavaScript语法解析

首先来看一下什么是抽象语法树。抽象语法树(Abstract Syntax Tree)也称为AST语法树,指的是源代码语法所对应的树状结构。也就是说,对于一种具体编程语言下的源代码,通过构建语法树的形式将源代码中的语句映射到树中的每一个节点上。
可以通过一个demo来看一下什么是AST。
js代码为

  1. var a = 1;
  2. function main() {
  3. console.log('this is a function');
  4. }
  5. main();

这段代码的AST长这样:

image

可以发现,代码被映射成了一颗语法树,有三个节点,不同语句映射成不同的节点。那么我们便可以通过操作语法树来准确的获得代码中的某个节点,对代码进行分析等。

Espsrima

Espsrima是一个较为成熟的JavaScript语法解析开源项目。使用Espsrima对js代码进行语法解析的步骤如下:

1. 准备环境

我们使用node来构建能够在命令行中运行的js代码。所以首先确保安装

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/597698
推荐阅读
相关标签
  

闽ICP备14008679号