param_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root; returnAST = param_AST;
	public final void param() throws RecognitionException, TokenStreamException {				traceIn("param");		try { // debugging			returnAST = null;			ASTPair currentAST = new ASTPair();			org.exist.xquery.parser.XQueryAST param_AST = null;			org.exist.xquery.parser.XQueryAST t_AST = null;			String varName= null;						match(DOLLAR);			varName=qName();			astFactory.addASTChild(currentAST, returnAST);			{			switch ( LA(1)) {			case LITERAL_as:			{				typeDeclaration();				t_AST = (org.exist.xquery.parser.XQueryAST)returnAST;				astFactory.addASTChild(currentAST, returnAST);				break;			}			case RPAREN:			case COMMA:			{				break;			}			default:			{				throw new NoViableAltException(LT(1), getFilename());			}			}			}			if ( inputState.guessing==0 ) {				param_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root;				param_AST= (org.exist.xquery.parser.XQueryAST)astFactory.make( (new ASTArray(2)).add((org.exist.xquery.parser.XQueryAST)astFactory.create(VARIABLE_BINDING,varName)).add(t_AST));				currentAST.root = param_AST;				currentAST.child = param_AST!=null &&param_AST.getFirstChild()!=null ?					param_AST.getFirstChild() : param_AST;				currentAST.advanceChildToEnd();			}			param_AST = (org.exist.xquery.parser.XQueryAST)currentAST.root;			returnAST = param_AST;		} finally { // debugging			traceOut("param");		}	}