我正在尝试找到 ECMAScript 的良好 EBNF 描述,但到目前为止我还没有找到任何完整的内容。
有任何想法吗?
ECMAScript 标准怎么样?根据定义完成:-}
编辑:如果您想要现有的语法,请尝试其中一个语法生成器工具站点。对于 ANTLR,这里是 ECMAScript 语法。我对它的质量一无所知,但如果语法是精心构建的,ANTLR 可以产生好的解析器。您可能会发现语法也与一堆 ANTLR 内容交织在一起,因此从您的角度来看,它可能会遇到与标准相同的问题。至少你可以删除所有这些东西。
Crockford's JavaScript: The Good Parts的第 2 章图(你猜对了)好的部分。
以下是针对 JavaScript 的 BNF 的一些尝试:
从这个较早的SO问题:
我正在为 ECMAScript 开发基于javacc的解析器。到目前为止,这是我的语法:
另请参阅 Tom Copeland 的 EcmaScript BNF:
以及“又一个 JavaScript 解释器”:
以及 Dojo Toolkit 的语法(可能基于 YAJI):
从我的角度来看,YAJI 或 Dojo Toolkit 是最好的和最完整的(据我所知)。我的工作基于这些,但希望使其更加完整(5.1/6)和符合标准但实用。
ECMAScript 语法非常棘手。它有一些重要的警告:
所以请注意这一点。实现这些非常棘手。
如果您的目标平台是 Java 并且您不介意 JavaCC,那么如果您加入我的项目,我会很高兴。我的语法实际上已经准备好了(构建/编译没有警告)。我现在正在开发测试套件以涵盖每个功能和生产。不过,我预计正则表达式文字和 ASI 会出现一些问题。
附言。我刚刚注意到这个问题来自 09,所以我的邀请可能为时已晚。:)
试试这个链接ecmascriptA3它有 ecmascript 的 BNF