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

时间:2017-07-02 12:41:20

标签: javascript ecmascript-6 compiler-construction grammar bnf

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

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

我只能找到那些(来自那个Stack Overflow post):

然而,这些是非常古老的BNF(StackOverflow上的帖子也很老,从9年前开始)。这些语法仅用于 - 并且以有限的方式 - 用于版本< ES5。

您是否了解较新的公开语法(BNF,JavaCC文件等)?

ES6有一些解析器,例如Esprima,但是,由于我必须使用JavaCC环境,我需要使用语法。

2 个答案:

答案 0 :(得分:2)

ANTLR

看看JavaScript grammar语法存储库中的ANTLR

答案 1 :(得分:1)

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

下一版本(ES2018)的最新草稿位于https://github.com/tc39/ecma262(来源回购)和https://tc39.github.io/ecma262/(已呈现)。

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