我想对 Javascript 进行一些代码分析。我更喜欢在AST或S-Expression上进行操作。V8引擎当然有可能构建它,尽管我似乎找不到任何关于如何从 Javascript 上下文访问此信息的文档。
我非常乐意在 Ruby 中进行分析,尽管我能想到的唯一方法是在Treetop或类似的解析器生成器中编写整个语法。
我想对 Javascript 进行一些代码分析。我更喜欢在AST或S-Expression上进行操作。V8引擎当然有可能构建它,尽管我似乎找不到任何关于如何从 Javascript 上下文访问此信息的文档。
我非常乐意在 Ruby 中进行分析,尽管我能想到的唯一方法是在Treetop或类似的解析器生成器中编写整个语法。
如果你想使用 Ruby,你不必自己实现它,因为 nokogiri 的 Aaron Patterson 已经在rkelly中实现了。
查看 UglifyJS:https ://github.com/mishoo/UglifyJS
我们的DMS 软件再造工具包能够解析 ECMAScript(甚至嵌入在 HTML 脚本标签或 ONxxx 属性中),并构建 AST。您可以定义自己的分析程序,使用源级模式来识别代码或转换代码;这些操纵 AST。转换后,您可以重新生成有效的源文本,包括注释。如果需要,您可以将 AST 导出为另一种语言作为 XML,但 DMS 包含许多有用的机制来支持程序分析和转换,我相信当您仔细观察时,诱惑就会消失。
DMS 也适用于多种其他语言。