开发者

EBNF for ECMAScript?

开发者 https://www.devze.com 2022-12-12 02:22 出处:网络
I\'m trying to find a good EBNF description of ECMAScrip开发者_Python百科t, but so far I\'ve not found anything complete.

I'm trying to find a good EBNF description of ECMAScrip开发者_Python百科t, but so far I've not found anything complete.

Any ideas?


How about the ECMAScript standard? Complete by definition :-}

EDIT: If you want an existing grammar, try one of the grammar generator tools sites. For ANTLR, here's the ECMAScript grammar. I know nothing of its quality but the ANTLR can produce good parsers if the grammer is constructed with care. You'll probably find the grammar also interwoven with bunch of ANTLR stuff, so it may suffer from some of the same problem as the standard from your point of view. At least you can delete all that stuff out.


Chapter 2 of Crockford's JavaScript: The Good Parts diagrams (you guessed it) the good parts.

Here are a couple stabs at BNF for JavaScript:

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

from this earlier SO question:

Repository of BNF Grammars?


I am working on javacc-based parser for ECMAScript. Here's my grammar so far:

  • https://github.com/highsource/javascript-codemodel/blob/master/parser/src/main/javacc/ecmascript-262.jj

See also Tom Copeland's BNF for EcmaScript:

  • http://tomcopeland.blogs.com/EcmaScript.html

As well as "Yet Another JavaScript Interpreter":

  • https://code.google.com/p/yaji-ecmascript-interpreter/source/browse/trunk/yaji-ecmascript-interpreter/src/FESI/Parser/EcmaScript.jjt

As well as Dojo Toolkit's Grammar (probably based on YAJI):

  • http://svn.dojotoolkit.org/src/trunk/tools/jslinker/src/org/dojo/jsl/parser/EcmaScript.jjt

From my point of view, YAJI or Dojo Toolkit's are the best and the most complete (to the best of my knowledge). I'm basing my work on those but want to make it even more complete (5.1/6) and standard-conform yet practical.

ECMAScript grammar is very tricky. It has a few huge caveats:

  • Regular Expression Literals vs. Division (you can't distinguishing them on the lexer level)
  • Automatic Semicolon Insertion (ASI)

So please be aware of that. Implementing those is very tricky.

If your target platform Java and you don't mind JavaCC, I'd be glad if you join my project. My grammar is actually ready (builds/compiles without warnings). I'm now working on test suites to cover each and every feature and production. I anticipate some problems with regex literals and ASIs though.

ps. I've just noticed that the question is from 09 so my invitation is probably too late. :)


try this link ecmascriptA3 it has the BNF of ecmascript

0

精彩评论

暂无评论...
验证码 换一张
取 消