JavaScript ES6 是否有公开可用的 BNF 语法?

Is there a BNF grammar openly available for JavaScript ES6?

我正在为 JavaScript 程序开发一个合并工具,我需要以 JavaCC 格式为 JavaScript(版本 >= ES6)编写语法。

为此,我想为 ES6 使用一个公开可用的 BNF 语法,然后我会用它编写 JavaCC 格式的语法。

我只能找到那些(从这个Stack Overflow question):

然而,这些都是非常古老的 BNF(而且 Whosebug 上的问题也非常古老,从 11 年前开始)。这些语法仅适用于 - 并且以有限的方式 - 适用于 < ES6 的版本。

您知道更新的公开语法(BNF、JavaCC 文件等)吗?

有ES6可用的解析器,例如Esprima,但是,由于我必须使用JavaCC环境,所以我需要语法来处理。

完全认可的最新版本 ECMAScript (ES2017 = ES8) 位于 https://www.ecma-international.org/publications/standards/Ecma-262.htm

下一版本 (ES2018) 的最新草稿在 https://github.com/tc39/ecma262 (source repo) and https://tc39.github.io/ecma262/(呈现)。

所有这些都是公开可用的,并且包含该语言的语法。语法符号主要是 BNF 并有一些扩展。

蚂蚁金服

查看 JavaScript grammar from the ANTLR 语法存储库。