我试图找到一个好的ECMAScript的EBNF描述,但到目前为止,我还没有找到任何完整的东西。
有什么想法吗?
发布于 2009-11-24 06:53:25
那ECMAScript standard呢?按定义完成:-}
编辑:如果您想要现有的语法,请尝试语法生成器工具站点之一。对于ANTLR,这里是ECMAScript grammar。我对它的质量一无所知,但如果语法构造得很仔细,ANTLR可以产生很好的解析器。您可能会发现该语法还与一堆ANTLR内容交织在一起,因此从您的角度来看,它可能会遇到一些与标准相同的问题。至少你可以把那些东西都删除掉。
发布于 2009-11-24 10:46:28
Crockford's JavaScript: The Good Parts diagrams (你猜对了)第2章: the good parts。
以下是JavaScript对BNF的一些抨击:
在前面的问题中:
发布于 2015-02-14 17:27:35
我正在为ECMAScript开发javacc-based解析器。到目前为止,我的语法如下:
另请参阅Tom Copeland的BNF for EcmaScript:
以及“又一个JavaScript解释器”:
以及Dojo Toolkit的语法(可能基于YAJI):
在我看来,YAJI或Dojo Toolkit是最好、最完整的(据我所知)。我的工作建立在这些基础上,但我想让它更完整(5.1/6),符合标准,但又实用。
ECMAScript语法非常复杂。它有几个重要的警告:
除法和正则表达式文字(您无法在lexer level)
上区分它们
所以请注意这一点。实现这些是非常棘手的。
如果你的目标平台是Java,并且你不介意JavaCC,我会很高兴你加入我的项目。我的语法实际上已经准备好了(编译/编译时没有警告)。我现在正在开发测试套件,以涵盖每一个特性和产品。不过,我预计正则表达式和ASIs会出现一些问题。
ps。我刚刚注意到这个问题来自09,所以我的邀请可能太晚了。:)
https://stackoverflow.com/questions/1786565
复制相似问题