I'm trying to find a good EBNF description of ECMAScript, but so far I've not found anything complete.
Any ideas?
I'm trying to find a good EBNF description of ECMAScript, 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.
171 warnings / 28 errors / BUILD FAIL
. :/ The first error is highlighting the apparently trivial charVocabulary in options, so not sure what's up there. :( I really hope I wont end up forced to trek through almost two hundred PDF pages in order to manually compile a working grammar. –
Guyguyana 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:
from this earlier SO question:
I am working on javacc-based parser for ECMAScript. Here's my grammar so far:
See also Tom Copeland's BNF for EcmaScript:
As well as "Yet Another JavaScript Interpreter":
As well as Dojo Toolkit's Grammar (probably based on YAJI):
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:
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. :)
© 2022 - 2024 — McMap. All rights reserved.