emk*_*emk 68 javascript parsing
我需要在JavaScript源代码中添加一些轻量级的语法糖,并使用基于JavaScript的构建系统对其进行处理.有没有用JavaScript编写的开源JavaScript解析器?在V8或类似的高性能JavaScript实现上运行时,它们是否相当快?
感谢您提供的任何指示!
emk*_*emk 24
Crescent Fresh在评论中回答了这个问题:
JSLint包含一个用JavaScript编写的JavaScript解析器.参见Douglas Crockford的JSlint第2712行开始解析器.编写JSLint也可以处理html,所以你必须掩盖这些部分
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
Run Code Online (Sandbox Code Playgroud)
它与Mozilla的Parser API兼容,因此您可以使用escodegen从解析树生成JavaScript.
我在JavaScript中看到的唯一的metacircular解释器是Narcissus Engine.
它也是由Brendan Eich开发的,他们使用了许多特定于SpiderMonkey的非标准扩展,我认为它不适用于V8.
Microsoft已在TypeScript中开发了TypeScript编译器.由于TypeScript是JavaScript的严格超集,并且TypeScript编译为JavaScript,因此生成的编译器在技术上是用JavaScript编写的JavaScript编译器.
那当然取决于你对"编译器"的定义.但是,如果接受语言A的超集的编译器不是语言A编译器,则排除GCC,Clang和几乎所有其他编译器.
| 归档时间: |
|
| 查看次数: |
39564 次 |
| 最近记录: |