docs: 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
  }