JavaScript中的JavaScript解析器

JavaScript中的JavaScript解析器,javascript,parsing,Javascript,Parsing,我需要向JavaScript源代码中添加一些轻量级语法糖,并使用基于JavaScript的构建系统对其进行处理。有没有用JavaScript编写的开源JavaScript解析器?在V8或类似的高性能JavaScript实现上运行时,它们是否运行得相当快 感谢您提供的任何建议 它本身不是一个JavaScript解析器,但有一个名为(比如Bison)的项目,用于生成用JS编写的解析器。我所看到的唯一用JavaScript实现的是引擎 它也是由Brendan Eich开发的,他们使用了许多特定于Spi

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


感谢您提供的任何建议

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

我所看到的唯一用JavaScript实现的是引擎


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

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


JSLint包含一个用JavaScript编写的JavaScript解析器。请参见第2712行,解析器开始。JSLint也是为了处理html而编写的,所以您必须对这些部分进行润色

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

JS/CC-用于JavaScript的LALR(1)语法分析器和词法分析器生成器,用JavaScript编写-

JavaScript语法分析器是

它也给你

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

:

独立SpiderMonkey shell的最新版本包括 SpiderMonkey解析器的反射,作为JavaScript提供 API


注意,这只是JavaScript中的一个API,解析器是C++。

< P>微软开发了TypeScript的Type脚本编译器。由于TypeScript是JavaScript的严格超集,并且TypeScript编译为JavaScript,因此生成的编译器在技术上是用JavaScript编写的JavaScript编译器

这当然取决于你对“编译器”的定义。但是,如果接受语言a超集的编译器不是语言a编译器,那么就排除了GCC、Clang和几乎所有其他编译器。

是一个用JavaScript编写的非常快速的JavaScript解析器。比现在还快。我以Chrome格式获得的结果:


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

“我需要在JavaScript源代码中添加一些轻量级的语法糖”是吗?比如说什么?你需要它来解释代码还是编辑器?Objective-J就是这么做的。您可能想签出它的开源代码。但它使用与Objective-C类似的完全不同的语法,并在运行时解释为Javascript afaik.JSLint包含一个用Javascript编写的Javascript解析器。请参见第2049行左右的内容,这是解析器的开头。JSLint也是用来处理html的,所以你必须对这些部分进行润色。新月法语:请回复你的评论作为答案,我会投票支持你。非常感谢。有趣!我想有一个解析器藏在那里的某个地方。:-)不幸的是,我正在寻找在V8下运行的东西。但是谢谢你提供的非常有趣的链接!Crescent Fresh,如果你想把你的评论作为答案转发,我会接受并投票给你。最新的源代码,上面的链接是404:answer updated()UglifyJS非常棒,谢谢你。还感谢HTMLArea,它是我在7或8年前开发所见即所得编辑器时的一个很好的参考。不过,我建议在链接到UglifyJS时提及您的兴趣。我只想指出,这个解析器已经准备就绪,并且似乎工作得很好。它包含在一个单独的文件中,因此无需费力地通过jslint.js取出您不需要的部分+1Link从最新的editWell开始工作。问题是JavaScript解析器。。。??
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