traceIn("letClause"); try { returnAST = null; ASTPair currentAST = new ASTPair(); org.exist.xquery.parser.XQueryAST letClause_AST = null;
returnAST = null; ASTPair currentAST = new ASTPair(); org.exist.xquery.parser.XQueryAST letClause_AST = null;  org.exist.xquery.parser.XQueryAST tmp178_AST = null; tmp178_AST = (org.exist.xquery.parser.XQueryAST)astFactory.create(LT(1)); astFactory.makeASTRoot(currentAST, tmp178_AST); match(LITERAL_let); letVarBinding(); astFactory.addASTChild(currentAST, returnAST); { _loop82: do { if ((LA(1)==COMMA)) { match(COMMA); letVarBinding(); astFactory.addASTChild(currentAST, returnAST); } else { break _loop82; }
	public final void letClause() throws RecognitionException, TokenStreamException {				traceIn("letClause");		try { // debugging			returnAST = null;			ASTPair currentAST = new ASTPair();			org.exist.xquery.parser.XQueryAST letClause_AST = null;						org.exist.xquery.parser.XQueryAST tmp180_AST = null;			tmp180_AST = (org.exist.xquery.parser.XQueryAST)astFactory.create(LT(1));			astFactory.makeASTRoot(currentAST, tmp180_AST);			match(LITERAL_let);			letVarBinding();			astFactory.addASTChild(currentAST, returnAST);			{			_loop82:			do {				if ((LA(1)==COMMA)) {					match(COMMA);					letVarBinding();					astFactory.addASTChild(currentAST, returnAST);				}				else {					break _loop82;				}							} while (true);			}			letClause_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root;			returnAST = letClause_AST;		} finally { // debugging			traceOut("letClause");		}	}