当前位置:  开发笔记 > 编程语言 > 正文

JavaScript中的JavaScript解析器

如何解决《JavaScript中的JavaScript解析器》经验,为你挑选了7个好方法。

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

感谢您提供的任何指示!



1> 小智..:

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


UglifyJS很棒,谢谢你.还要感谢HTMLArea,在7或8年前开发WYSIWYG编辑器时,这对我来说是一个很好的参考.我建议您在链接到UglifyJS时提及您的兴趣.
我只想指出这个解析器已准备就绪,似乎完美无缺.它包含在一个单独的文件中,因此无需通过jslint.js来取出您不需要的部分.+1

2> emk..:

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

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


最近的源代码,上面的链接去了404:https://github.com/douglascrockford/JSLint

3> Johannes Ger..:

将最快在Javascript JavaScript分析器是esprima.

它也给你

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



4> Claudiu..:

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.



5> alunny..:

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



6> CMS..:

我在JavaScript中看到的唯一的metacircular解释器是Narcissus Engine.

它也是由Brendan Eich开发的,他们使用了许多特定于SpiderMonkey的非标准扩展,我认为它不适用于V8.



7> Janus Troels..:

Microsoft已在TypeScript中开发了TypeScript编译器.由于TypeScript是JavaScript的严格超集,并且TypeScript编译为JavaScript,因此生成的编译器在技术上是用JavaScript编写的JavaScript编译器.

那当然取决于你对"编译器"的定义.但是,如果接受语言A的超集的编译器不是语言A编译器,则排除GCC,Clang和几乎所有其他编译器.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有