17

我正在尝试找到 ECMAScript 的良好 EBNF 描述,但到目前为止我还没有找到任何完整的内容。

有任何想法吗?

4

4 回答 4

13

ECMAScript 标准怎么样?根据定义完成:-}

编辑:如果您想要现有的语法,请尝试其中一个语法生成器工具站点。对于 ANTLR,这里是 ECMAScript 语法。我对它的质量一无所知,但如果语法是精心构建的,ANTLR 可以产生好的解析器。您可能会发现语法也与一堆 ANTLR 内容交织在一起,因此从您的角度来看,它可能会遇到与标准相同的问题。至少你可以删除所有这些东西。

于 2009-11-23T22:53:25.423 回答
9

Crockford's JavaScript: The Good Parts的第 2 章图(你猜对了)好的部分。

以下是针对 JavaScript 的 BNF 的一些尝试:

从这个较早的SO问题:

BNF 语法库?

于 2009-11-24T02:46:27.747 回答
4

我正在为 ECMAScript 开发基于的解析器。到目前为止,这是我的语法:

另请参阅 Tom Copeland 的 EcmaScript BNF:

以及“又一个 JavaScript 解释器”:

以及 Dojo Toolkit 的语法(可能基于 YAJI):

从我的角度来看,YAJI 或 Dojo Toolkit 是最好的和最完整的(据我所知)。我的工作基于这些,但希望使其更加完整(5.1/6)和符合标准但实用。

ECMAScript 语法非常棘手。它有一些重要的警告:

  • 正则表达式文字与除法(您无法在词法分析器级别区分它们)
  • 自动分号插入 (ASI)

所以请注意这一点。实现这些非常棘手。

如果您的目标平台是 Java 并且您不介意 JavaCC,那么如果您加入我的项目,我会很高兴。我的语法实际上已经准备好了(构建/编译没有警告)。我现在正在开发测试套件以涵盖每个功能和生产。不过,我预计正则表达式文字和 ASI 会出现一些问题。

附言。我刚刚注意到这个问题来自 09,所以我的邀请可能为时已晚。:)

于 2015-02-14T09:27:34.710 回答
2

试试这个链接ecmascriptA3它有 ecmascript 的 BNF

于 2012-02-22T11:53:36.803 回答