This class implements the JavaScript parser.
It is based on the SpiderMonkey C source files jsparse.c and jsparse.h in the jsref package.
The parser generates an {@link AstRoot} parse tree representing the sourcecode. No tree rewriting is permitted at this stage, so that the parse tree is a faithful representation of the source for frontend processing tools and IDEs.
This parser implementation is not intended to be reused after a parse finishes, and will throw an IllegalStateException() if invoked again.
@see TokenStream