是否有一套完整的JavaScript(ECMAScript)解析器测试用例?

是否有一套完整的JavaScript(ECMAScript)解析器测试用例?,javascript,parsing,Javascript,Parsing,我将要编写一个JavaScript解析器,我想要一组测试用例,也就是说,应该解析的东西(可能是不应该解析的东西),我可以扔给我的解析器来测试它的正确性。我不想测试JavaScript的运行,只是解析 我正在阅读ECMAScript规范,并从中创建一组测试用例,但是如果有人已经完成了,那就太好了 我还查看了测试用例的V8和SpiderMonkey源代码,但除了被手工编码的解析器所困扰之外,解析测试似乎还与评估测试相结合。我可以从两个最近的项目中为您提供两个起点: 几个月前,Peter van de

我将要编写一个JavaScript解析器,我想要一组测试用例,也就是说,应该解析的东西(可能是不应该解析的东西),我可以扔给我的解析器来测试它的正确性。我不想测试JavaScript的运行,只是解析

我正在阅读ECMAScript规范,并从中创建一组测试用例,但是如果有人已经完成了,那就太好了


我还查看了测试用例的V8和SpiderMonkey源代码,但除了被手工编码的解析器所困扰之外,解析测试似乎还与评估测试相结合。

我可以从两个最近的项目中为您提供两个起点:

几个月前,Peter van der Zee(又名)制作了一个由Jesse Ruderman编写的语法分析器,包括一些语法专用测试和一个模糊器

检查(查找
EsParser.testSuite
函数)以查找其中一些测试


还有另外一个ECMAScript 5解析器是用ECMAScript编写的,这一个如果来自Google的项目,他们也有一套很好的面向语法的单元测试,你可以找到。

出于好奇,如果解析器测试人员不测试实际的解释,你会期望它如何工作?换句话说,在解析器中,哪种类型的输出足够通用,而标准化的打包测试实际上可能是有用的?一个查找(1)应该解析的东西和(2)不应该解析的东西的测试足够通用,因为它只是一个布尔值。更有趣的测试必须具有可移植的AST表示格式,例如XML、SExprs或JSON。我很高兴看到CMS发布的那些实现特定的内容,因为我可以很容易地将它们转换成我的测试格式。谢谢,这些看起来对我很有用@克里斯托弗,不客气!。如果您愿意,每当您完成解析器时,我都会很高兴地看一看(我很好地找到了解析bug:P)。在实现解析器的过程中,您会发现最复杂的任务之一是IMO,即自动分号插入过程,有许多词汇约定可能会遗漏。。。祝你好运:)顺便问一句,你将用哪种语言实现它?事实上,ECMAScript中的自动分号插入有很多时间。那会很有趣的。谢谢你的提议,我结束后会给你留言。;-)它将在Haskell中使用Parsec。昨晚我做了一个简短的开始,我几乎完成了对标识符名称的解析(有点奇怪,var\uC0=1;是有效的JavaScript,还没有阅读它背后的动机,但它很奇怪)。到目前为止,这里有一个要点:我可能会更新它,直到我有了一个完整的解析器,在这一点上,我将把它放在Github上。