JavaScript 中的 JavaScript 解析器

IT技术 javascript parsing
2021-01-25 22:58:26

我需要向 JavaScript 源代码添加一些轻量级的语法糖,并使用基于 JavaScript 的构建系统对其进行处理。有没有用 JavaScript 编写的开源 JavaScript 解析器?在 V8 或类似的高性能 JavaScript 实现之上运行时,它们是否相当快?

感谢您提供的任何指示!

6个回答

UglifyJS(JavaScript 中的 JS 压缩器/美化器)包含一个完整的 JavaScript 解析器,它公开了一个简单的 API。它在一些大项目 (WebKit) 中经过了大量测试和使用。

我只想指出这个解析器已经准备好了,而且似乎工作得很好。它包含在一个单独的文件中,因此无需费力地通过 jslint.js 取出不需要的部分。+1
2021-03-15 22:58:26
UglifyJS 很棒,谢谢你。还要感谢 HTMLArea,它对我在 7 或 8 年前开发 WYSIWYG 编辑器时提供了很好的参考。不过,我建议在链接到 UglifyJS 时提及您的兴趣。
2021-04-05 22:58:26

最快在Javascript JavaScript分析器是esprima

它还给你

抽象语法树 (AST) 的合理格式,与 Mozilla Parser API 兼容

Crescent Fresh在评论中回答了这个问题:

JSLint 包含一个用 JavaScript 编写的 JavaScript 解析器。参见Douglas Crockford 的 JSlint大约第 2712 行开始解析器。JSLint 被编写为也处理 html,所以你必须掩盖这些部分

2021-03-21 22:58:26
最近的源代码,上面的链接是 404:github.com/douglascrockford/JSLint
2021-03-28 22:58:26
Crescent Fresh,如果您想重新发布您的评论作为答案,我会接受并为您点赞。
2021-04-02 22:58:26

acorn是一个用 JavaScript 编写的非常快速的 JavaScript 解析器。现在它甚至比esprima还要快我在 Chrome 表单esprima 的速度比较页面中得到的结果

Source            Esprima    UglifyJS2    Traceur    Acorn
Underscore 1.4.1  15.1       23.8         14.2       7.6
Backbone 1.0.0    17.1       30.2         16.7       7.9
jQuery 1.9.1      241.1      247.2        125.4      81.4
Total             273.3 ms   301.2 ms     156.3 ms   96.9 ms

它与 Mozilla 的 Parser API 兼容,因此您可以使用escodegen从解析树生成 JavaScript。

它本身不是一个 JavaScript 解析器,但有一个名为Jison(如 Bison)的项目,用于生成用 JS 编写的解析器。

好吧,问题针对 JavaScript 解析器...??
2021-03-26 22:58:26