javascript - 是否有可用于 JavaScript ES6 的 BNF 语法?

标签 javascript ecmascript-6 compiler-construction grammar bnf

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。


3年前关闭。







Improve this question




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

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

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

  • http://tomcopeland.blogs.com/EcmaScript.html
  • http://www.ccs.neu.edu/home/dherman/javascript/

  • 然而,这些都是非常古老的 BNF(而且 StackOverflow 上的问题也非常古老,从 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 (源代码库)和https://tc39.github.io/ecma262/ (渲染)。

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

    关于javascript - 是否有可用于 JavaScript ES6 的 BNF 语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44870928/

    相关文章:

    javascript - 如何在表单提交时应用用于所有元素的相同事件监听器?

    带有@字符的Javascript ES6导入

    javascript - 为什么我无法从命令行通过 "node --harmony test.js"启动和谐模式?

    windows - 使用 Indy 组件发送电子邮件

    c++ - C++ 编译器可以优化 "if"循环内的 "for"语句吗?

    c++ - C++11标准是否保证initializer_list对象的内存布局是交叉编译器兼容的?

    javascript - 从终端运行 npm 时为 "module.js:557 throw err"

    javascript - ajax数据参数如何传递json,包括查询字符串url

    javascript - 使用附加 SDK 更改选项卡样式

    Javascript解释以下语法