如何遍历spidermonkey生成的AST(Javascript文件)

How to traverse the AST generated by spidermonkey (Javascript file)

本文关键字:AST Javascript 文件 spidermonkey 何遍历 遍历      更新时间:2023-09-26

我是Spidermonkey Parser的新手,我有两个问题。第一个是(对于初学者)有一个很好的文档,说明如何使用spidermonkeyParser生成Javascript文件的AST。第二个是知道如何遍历AST。我的目标是使用AST中的信息对JS文件进行一些静态分析(类型分析、字符串分析)。

感谢

Spidermonkey的AST被公开为Javascript对象。这意味着您应该编写一个小型Javascript脚本,使用该脚本读取和解析您想要解析的实际Javascript源文件,并获得作为Javascript对象的AST。

此功能在独立的SpiderMonkey shell中可用(可能不在Firefox附带的版本中)。您需要下载完整的Spidermonkey源代码,并使用捆绑的python脚本进行构建。Shell将与您的独立SpidermonkeyJavascript引擎一起构建。这个shell只是一个接受用户命令的小型控制台程序。shell可以读取和执行独立的Javascript脚本。特别是,由这个Shell执行的那些Javascript脚本可以访问一个名为Reflect的额外全局对象,该对象具有一个称为parse()的方法。Shell还支持额外的文件I/O功能,这是读取要解析的目标Javascript源代码的方式。

完整AST的描述如下:

https://developer.mozilla.org/en-US/docs/SpiderMonkey/Parser_API