function ZeParser(inp, tok, stack, simple){
	this.input = inp;
	this.tokenizer = tok;
	this.stack = stack;
	this.stack.root = true;
	this.scope = stack.scope = [{value:'this', isDeclared:true, isEcma:true, thisIsGlobal:true}]; // names of variables
	this.scope.global = true;
	this.statementLabels = [];

	this.errorStack = [];

	stack.scope = this.scope; // hook root
	stack.labels = this.statementLabels;

	this.regexLhsStart = ZeParser.regexLhsStart;
/*
	this.regexStartKeyword = ZeParser.regexStartKeyword;
	this.regexKeyword = ZeParser.regexKeyword;
	this.regexStartReserved = ZeParser.regexStartReserved;
	this.regexReserved = ZeParser.regexReserved;
*/
	this.regexStartKeyOrReserved = ZeParser.regexStartKeyOrReserved;
	this.hashStartKeyOrReserved = ZeParser.hashStartKeyOrReserved;
	this.regexIsKeywordOrReserved = ZeParser.regexIsKeywordOrReserved;
	this.regexAssignments = ZeParser.regexAssignments;
	this.regexNonAssignmentBinaryExpressionOperators = ZeParser.regexNonAssignmentBinaryExpressionOperators;
	this.regexUnaryKeywords = ZeParser.regexUnaryKeywords;
	this.hashUnaryKeywordStart = ZeParser.hashUnaryKeywordStart;
	this.regexUnaryOperators = ZeParser.regexUnaryOperators;
	this.regexLiteralKeywords = ZeParser.regexLiteralKeywords;
	this.testing = {'this':1,'null':1,'true':1,'false':1};

	this.ast = !simple; ///#define FULL_AST
}
This is my js Parser: Ze. It's actually the post-dev pre-cleanup version. Clearly.
Some optimizations have been applied :)
(c) Peter van der Zee, qfox.nl
@param {String} inp Input
@param {Tokenizer} tok
@param {Array} stack The tokens will be put in this array. If you're looking for the AST, this would be it :)