All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rapture.generated.HoseParser Maven / Gradle / Ivy

There is a newer version: 3.0.4
Show newest version
// $ANTLR 3.5.2 /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g 2016-04-15 08:33:46

package rapture.generated;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;

import org.antlr.runtime.tree.*;


@SuppressWarnings("all")
public class HoseParser extends Parser {
	public static final String[] tokenNames = new String[] {
		"", "", "", "", "ARG", "ARGLIST", "ARG_D", "ARG_O", 
		"ARG_OD", "ASSIGN", "BODY", "CALL", "CLOSEI", "CLOSEP", "COMMA", "Comment", 
		"DECIMAL_T", "DEREF", "DEREFLIST", "DOT", "Digit", "Double", "EQUALS", 
		"INT_T", "Identifier", "LINK", "LINKS", "Long", "Number", "OPENI", "OPENP", 
		"OUTINDEX", "OUTKEY", "PARM", "PARMLIST", "SEMI", "SIGNATURE", "STREAM_T", 
		"STRING_T", "Space", "String"
	};
	public static final int EOF=-1;
	public static final int ARG=4;
	public static final int ARGLIST=5;
	public static final int ARG_D=6;
	public static final int ARG_O=7;
	public static final int ARG_OD=8;
	public static final int ASSIGN=9;
	public static final int BODY=10;
	public static final int CALL=11;
	public static final int CLOSEI=12;
	public static final int CLOSEP=13;
	public static final int COMMA=14;
	public static final int Comment=15;
	public static final int DECIMAL_T=16;
	public static final int DEREF=17;
	public static final int DEREFLIST=18;
	public static final int DOT=19;
	public static final int Digit=20;
	public static final int Double=21;
	public static final int EQUALS=22;
	public static final int INT_T=23;
	public static final int Identifier=24;
	public static final int LINK=25;
	public static final int LINKS=26;
	public static final int Long=27;
	public static final int Number=28;
	public static final int OPENI=29;
	public static final int OPENP=30;
	public static final int OUTINDEX=31;
	public static final int OUTKEY=32;
	public static final int PARM=33;
	public static final int PARMLIST=34;
	public static final int SEMI=35;
	public static final int SIGNATURE=36;
	public static final int STREAM_T=37;
	public static final int STRING_T=38;
	public static final int Space=39;
	public static final int String=40;

	// delegates
	public Parser[] getDelegates() {
		return new Parser[] {};
	}

	// delegators


	public HoseParser(TokenStream input) {
		this(input, new RecognizerSharedState());
	}
	public HoseParser(TokenStream input, RecognizerSharedState state) {
		super(input, state);
	}

	protected TreeAdaptor adaptor = new CommonTreeAdaptor();

	public void setTreeAdaptor(TreeAdaptor adaptor) {
		this.adaptor = adaptor;
	}
	public TreeAdaptor getTreeAdaptor() {
		return adaptor;
	}
	@Override public String[] getTokenNames() { return HoseParser.tokenNames; }
	@Override public String getGrammarFileName() { return "/Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g"; }


	public static class program_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "program"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:36:1: program : signature ( statement )* -> ^( BODY signature ( statement )* ) ;
	public final HoseParser.program_return program() throws RecognitionException {
		HoseParser.program_return retval = new HoseParser.program_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		ParserRuleReturnScope signature1 =null;
		ParserRuleReturnScope statement2 =null;

		RewriteRuleSubtreeStream stream_signature=new RewriteRuleSubtreeStream(adaptor,"rule signature");
		RewriteRuleSubtreeStream stream_statement=new RewriteRuleSubtreeStream(adaptor,"rule statement");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:37:3: ( signature ( statement )* -> ^( BODY signature ( statement )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:37:5: signature ( statement )*
			{
			pushFollow(FOLLOW_signature_in_program135);
			signature1=signature();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) stream_signature.add(signature1.getTree());
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:37:15: ( statement )*
			loop1:
			while (true) {
				int alt1=2;
				int LA1_0 = input.LA(1);
				if ( (LA1_0==Identifier) ) {
					alt1=1;
				}

				switch (alt1) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:37:15: statement
					{
					pushFollow(FOLLOW_statement_in_program137);
					statement2=statement();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_statement.add(statement2.getTree());
					}
					break;

				default :
					break loop1;
				}
			}

			// AST REWRITE
			// elements: statement, signature
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 37:26: -> ^( BODY signature ( statement )* )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:37:29: ^( BODY signature ( statement )* )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(BODY, "BODY"), root_1);
				adaptor.addChild(root_1, stream_signature.nextTree());
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:37:46: ( statement )*
				while ( stream_statement.hasNext() ) {
					adaptor.addChild(root_1, stream_statement.nextTree());
				}
				stream_statement.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "program"


	public static class signature_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "signature"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:40:1: signature : OPENP out= parmlist CLOSEP LINKS Identifier OPENP in= parmlist CLOSEP -> ^( SIGNATURE Identifier $in $out) ;
	public final HoseParser.signature_return signature() throws RecognitionException {
		HoseParser.signature_return retval = new HoseParser.signature_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token OPENP3=null;
		Token CLOSEP4=null;
		Token LINKS5=null;
		Token Identifier6=null;
		Token OPENP7=null;
		Token CLOSEP8=null;
		ParserRuleReturnScope out =null;
		ParserRuleReturnScope in =null;

		Object OPENP3_tree=null;
		Object CLOSEP4_tree=null;
		Object LINKS5_tree=null;
		Object Identifier6_tree=null;
		Object OPENP7_tree=null;
		Object CLOSEP8_tree=null;
		RewriteRuleTokenStream stream_CLOSEP=new RewriteRuleTokenStream(adaptor,"token CLOSEP");
		RewriteRuleTokenStream stream_Identifier=new RewriteRuleTokenStream(adaptor,"token Identifier");
		RewriteRuleTokenStream stream_OPENP=new RewriteRuleTokenStream(adaptor,"token OPENP");
		RewriteRuleTokenStream stream_LINKS=new RewriteRuleTokenStream(adaptor,"token LINKS");
		RewriteRuleSubtreeStream stream_parmlist=new RewriteRuleSubtreeStream(adaptor,"rule parmlist");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:41:3: ( OPENP out= parmlist CLOSEP LINKS Identifier OPENP in= parmlist CLOSEP -> ^( SIGNATURE Identifier $in $out) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:41:5: OPENP out= parmlist CLOSEP LINKS Identifier OPENP in= parmlist CLOSEP
			{
			OPENP3=(Token)match(input,OPENP,FOLLOW_OPENP_in_signature162); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_OPENP.add(OPENP3);

			pushFollow(FOLLOW_parmlist_in_signature166);
			out=parmlist();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) stream_parmlist.add(out.getTree());
			CLOSEP4=(Token)match(input,CLOSEP,FOLLOW_CLOSEP_in_signature168); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_CLOSEP.add(CLOSEP4);

			LINKS5=(Token)match(input,LINKS,FOLLOW_LINKS_in_signature170); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_LINKS.add(LINKS5);

			Identifier6=(Token)match(input,Identifier,FOLLOW_Identifier_in_signature172); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_Identifier.add(Identifier6);

			OPENP7=(Token)match(input,OPENP,FOLLOW_OPENP_in_signature174); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_OPENP.add(OPENP7);

			pushFollow(FOLLOW_parmlist_in_signature178);
			in=parmlist();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) stream_parmlist.add(in.getTree());
			CLOSEP8=(Token)match(input,CLOSEP,FOLLOW_CLOSEP_in_signature180); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_CLOSEP.add(CLOSEP8);

			// AST REWRITE
			// elements: out, in, Identifier
			// token labels: 
			// rule labels: in, retval, out
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_in=new RewriteRuleSubtreeStream(adaptor,"rule in",in!=null?in.getTree():null);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);
			RewriteRuleSubtreeStream stream_out=new RewriteRuleSubtreeStream(adaptor,"rule out",out!=null?out.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 41:73: -> ^( SIGNATURE Identifier $in $out)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:41:76: ^( SIGNATURE Identifier $in $out)
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIGNATURE, "SIGNATURE"), root_1);
				adaptor.addChild(root_1, stream_Identifier.nextNode());
				adaptor.addChild(root_1, stream_in.nextTree());
				adaptor.addChild(root_1, stream_out.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "signature"


	public static class parmlist_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "parmlist"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:44:1: parmlist : parm ( COMMA parm )* -> ^( PARMLIST ( parm )* ) ;
	public final HoseParser.parmlist_return parmlist() throws RecognitionException {
		HoseParser.parmlist_return retval = new HoseParser.parmlist_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA10=null;
		ParserRuleReturnScope parm9 =null;
		ParserRuleReturnScope parm11 =null;

		Object COMMA10_tree=null;
		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
		RewriteRuleSubtreeStream stream_parm=new RewriteRuleSubtreeStream(adaptor,"rule parm");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:45:3: ( parm ( COMMA parm )* -> ^( PARMLIST ( parm )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:45:5: parm ( COMMA parm )*
			{
			pushFollow(FOLLOW_parm_in_parmlist207);
			parm9=parm();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) stream_parm.add(parm9.getTree());
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:45:10: ( COMMA parm )*
			loop2:
			while (true) {
				int alt2=2;
				int LA2_0 = input.LA(1);
				if ( (LA2_0==COMMA) ) {
					alt2=1;
				}

				switch (alt2) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:45:11: COMMA parm
					{
					COMMA10=(Token)match(input,COMMA,FOLLOW_COMMA_in_parmlist210); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_COMMA.add(COMMA10);

					pushFollow(FOLLOW_parm_in_parmlist212);
					parm11=parm();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_parm.add(parm11.getTree());
					}
					break;

				default :
					break loop2;
				}
			}

			// AST REWRITE
			// elements: parm
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 45:24: -> ^( PARMLIST ( parm )* )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:45:27: ^( PARMLIST ( parm )* )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARMLIST, "PARMLIST"), root_1);
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:45:38: ( parm )*
				while ( stream_parm.hasNext() ) {
					adaptor.addChild(root_1, stream_parm.nextTree());
				}
				stream_parm.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "parmlist"


	public static class parm_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "parm"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:48:1: parm : type Identifier -> ^( PARM type Identifier ) ;
	public final HoseParser.parm_return parm() throws RecognitionException {
		HoseParser.parm_return retval = new HoseParser.parm_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token Identifier13=null;
		ParserRuleReturnScope type12 =null;

		Object Identifier13_tree=null;
		RewriteRuleTokenStream stream_Identifier=new RewriteRuleTokenStream(adaptor,"token Identifier");
		RewriteRuleSubtreeStream stream_type=new RewriteRuleSubtreeStream(adaptor,"rule type");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:49:3: ( type Identifier -> ^( PARM type Identifier ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:49:5: type Identifier
			{
			pushFollow(FOLLOW_type_in_parm236);
			type12=type();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) stream_type.add(type12.getTree());
			Identifier13=(Token)match(input,Identifier,FOLLOW_Identifier_in_parm238); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_Identifier.add(Identifier13);

			// AST REWRITE
			// elements: type, Identifier
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 49:21: -> ^( PARM type Identifier )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:49:24: ^( PARM type Identifier )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PARM, "PARM"), root_1);
				adaptor.addChild(root_1, stream_type.nextTree());
				adaptor.addChild(root_1, stream_Identifier.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "parm"


	public static class type_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "type"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:52:1: type : ( INT_T | DECIMAL_T | STRING_T | STREAM_T );
	public final HoseParser.type_return type() throws RecognitionException {
		HoseParser.type_return retval = new HoseParser.type_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set14=null;

		Object set14_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:53:3: ( INT_T | DECIMAL_T | STRING_T | STREAM_T )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:
			{
			root_0 = (Object)adaptor.nil();


			set14=input.LT(1);
			if ( input.LA(1)==DECIMAL_T||input.LA(1)==INT_T||(input.LA(1) >= STREAM_T && input.LA(1) <= STRING_T) ) {
				input.consume();
				if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set14));
				state.errorRecovery=false;
				state.failed=false;
			}
			else {
				if (state.backtracking>0) {state.failed=true; return retval;}
				MismatchedSetException mse = new MismatchedSetException(null,input);
				throw mse;
			}
			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "type"


	public static class statement_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "statement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:59:1: statement : Identifier LINKS arg SEMI -> ^( LINK Identifier arg ) ;
	public final HoseParser.statement_return statement() throws RecognitionException {
		HoseParser.statement_return retval = new HoseParser.statement_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token Identifier15=null;
		Token LINKS16=null;
		Token SEMI18=null;
		ParserRuleReturnScope arg17 =null;

		Object Identifier15_tree=null;
		Object LINKS16_tree=null;
		Object SEMI18_tree=null;
		RewriteRuleTokenStream stream_Identifier=new RewriteRuleTokenStream(adaptor,"token Identifier");
		RewriteRuleTokenStream stream_LINKS=new RewriteRuleTokenStream(adaptor,"token LINKS");
		RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
		RewriteRuleSubtreeStream stream_arg=new RewriteRuleSubtreeStream(adaptor,"rule arg");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:60:3: ( Identifier LINKS arg SEMI -> ^( LINK Identifier arg ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:60:5: Identifier LINKS arg SEMI
			{
			Identifier15=(Token)match(input,Identifier,FOLLOW_Identifier_in_statement295); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_Identifier.add(Identifier15);

			LINKS16=(Token)match(input,LINKS,FOLLOW_LINKS_in_statement297); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_LINKS.add(LINKS16);

			pushFollow(FOLLOW_arg_in_statement299);
			arg17=arg();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) stream_arg.add(arg17.getTree());
			SEMI18=(Token)match(input,SEMI,FOLLOW_SEMI_in_statement301); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_SEMI.add(SEMI18);

			// AST REWRITE
			// elements: Identifier, arg
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 60:31: -> ^( LINK Identifier arg )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:60:34: ^( LINK Identifier arg )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(LINK, "LINK"), root_1);
				adaptor.addChild(root_1, stream_Identifier.nextNode());
				adaptor.addChild(root_1, stream_arg.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "statement"


	public static class call_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "call"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:63:1: call : f= Identifier OPENP arglist CLOSEP -> ^( CALL $f ( arglist )? ) ;
	public final HoseParser.call_return call() throws RecognitionException {
		HoseParser.call_return retval = new HoseParser.call_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token f=null;
		Token OPENP19=null;
		Token CLOSEP21=null;
		ParserRuleReturnScope arglist20 =null;

		Object f_tree=null;
		Object OPENP19_tree=null;
		Object CLOSEP21_tree=null;
		RewriteRuleTokenStream stream_CLOSEP=new RewriteRuleTokenStream(adaptor,"token CLOSEP");
		RewriteRuleTokenStream stream_Identifier=new RewriteRuleTokenStream(adaptor,"token Identifier");
		RewriteRuleTokenStream stream_OPENP=new RewriteRuleTokenStream(adaptor,"token OPENP");
		RewriteRuleSubtreeStream stream_arglist=new RewriteRuleSubtreeStream(adaptor,"rule arglist");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:64:3: (f= Identifier OPENP arglist CLOSEP -> ^( CALL $f ( arglist )? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:64:5: f= Identifier OPENP arglist CLOSEP
			{
			f=(Token)match(input,Identifier,FOLLOW_Identifier_in_call329); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_Identifier.add(f);

			OPENP19=(Token)match(input,OPENP,FOLLOW_OPENP_in_call331); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_OPENP.add(OPENP19);

			pushFollow(FOLLOW_arglist_in_call333);
			arglist20=arglist();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) stream_arglist.add(arglist20.getTree());
			CLOSEP21=(Token)match(input,CLOSEP,FOLLOW_CLOSEP_in_call335); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_CLOSEP.add(CLOSEP21);

			// AST REWRITE
			// elements: f, arglist
			// token labels: f
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleTokenStream stream_f=new RewriteRuleTokenStream(adaptor,"token f",f);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 64:39: -> ^( CALL $f ( arglist )? )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:64:42: ^( CALL $f ( arglist )? )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CALL, "CALL"), root_1);
				adaptor.addChild(root_1, stream_f.nextNode());
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:64:52: ( arglist )?
				if ( stream_arglist.hasNext() ) {
					adaptor.addChild(root_1, stream_arglist.nextTree());
				}
				stream_arglist.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "call"


	public static class arglist_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "arglist"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:67:1: arglist : arg ( COMMA arg )* -> ^( ARGLIST ( arg )+ ) ;
	public final HoseParser.arglist_return arglist() throws RecognitionException {
		HoseParser.arglist_return retval = new HoseParser.arglist_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA23=null;
		ParserRuleReturnScope arg22 =null;
		ParserRuleReturnScope arg24 =null;

		Object COMMA23_tree=null;
		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
		RewriteRuleSubtreeStream stream_arg=new RewriteRuleSubtreeStream(adaptor,"rule arg");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:68:3: ( arg ( COMMA arg )* -> ^( ARGLIST ( arg )+ ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:68:5: arg ( COMMA arg )*
			{
			pushFollow(FOLLOW_arg_in_arglist360);
			arg22=arg();
			state._fsp--;
			if (state.failed) return retval;
			if ( state.backtracking==0 ) stream_arg.add(arg22.getTree());
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:68:9: ( COMMA arg )*
			loop3:
			while (true) {
				int alt3=2;
				int LA3_0 = input.LA(1);
				if ( (LA3_0==COMMA) ) {
					alt3=1;
				}

				switch (alt3) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:68:10: COMMA arg
					{
					COMMA23=(Token)match(input,COMMA,FOLLOW_COMMA_in_arglist363); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_COMMA.add(COMMA23);

					pushFollow(FOLLOW_arg_in_arglist365);
					arg24=arg();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_arg.add(arg24.getTree());
					}
					break;

				default :
					break loop3;
				}
			}

			// AST REWRITE
			// elements: arg
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 68:22: -> ^( ARGLIST ( arg )+ )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:68:25: ^( ARGLIST ( arg )+ )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARGLIST, "ARGLIST"), root_1);
				if ( !(stream_arg.hasNext()) ) {
					throw new RewriteEarlyExitException();
				}
				while ( stream_arg.hasNext() ) {
					adaptor.addChild(root_1, stream_arg.nextTree());
				}
				stream_arg.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "arglist"


	public static class baseArg_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "baseArg"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:71:1: baseArg : ( literal -> literal | Identifier -> Identifier | call -> call );
	public final HoseParser.baseArg_return baseArg() throws RecognitionException {
		HoseParser.baseArg_return retval = new HoseParser.baseArg_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token Identifier26=null;
		ParserRuleReturnScope literal25 =null;
		ParserRuleReturnScope call27 =null;

		Object Identifier26_tree=null;
		RewriteRuleTokenStream stream_Identifier=new RewriteRuleTokenStream(adaptor,"token Identifier");
		RewriteRuleSubtreeStream stream_call=new RewriteRuleSubtreeStream(adaptor,"rule call");
		RewriteRuleSubtreeStream stream_literal=new RewriteRuleSubtreeStream(adaptor,"rule literal");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:72:3: ( literal -> literal | Identifier -> Identifier | call -> call )
			int alt4=3;
			int LA4_0 = input.LA(1);
			if ( (LA4_0==Double||LA4_0==Long||LA4_0==String) ) {
				alt4=1;
			}
			else if ( (LA4_0==Identifier) ) {
				int LA4_2 = input.LA(2);
				if ( (LA4_2==OPENP) ) {
					alt4=3;
				}
				else if ( (LA4_2==EOF||(LA4_2 >= CLOSEP && LA4_2 <= COMMA)||LA4_2==DOT||LA4_2==OPENI||LA4_2==SEMI) ) {
					alt4=2;
				}

				else {
					if (state.backtracking>0) {state.failed=true; return retval;}
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 4, 2, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

			}

			else {
				if (state.backtracking>0) {state.failed=true; return retval;}
				NoViableAltException nvae =
					new NoViableAltException("", 4, 0, input);
				throw nvae;
			}

			switch (alt4) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:72:5: literal
					{
					pushFollow(FOLLOW_literal_in_baseArg390);
					literal25=literal();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_literal.add(literal25.getTree());
					// AST REWRITE
					// elements: literal
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 72:13: -> literal
					{
						adaptor.addChild(root_0, stream_literal.nextTree());
					}


					retval.tree = root_0;
					}

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:73:5: Identifier
					{
					Identifier26=(Token)match(input,Identifier,FOLLOW_Identifier_in_baseArg400); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_Identifier.add(Identifier26);

					// AST REWRITE
					// elements: Identifier
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 73:16: -> Identifier
					{
						adaptor.addChild(root_0, stream_Identifier.nextNode());
					}


					retval.tree = root_0;
					}

					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:74:5: call
					{
					pushFollow(FOLLOW_call_in_baseArg410);
					call27=call();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_call.add(call27.getTree());
					// AST REWRITE
					// elements: call
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 74:10: -> call
					{
						adaptor.addChild(root_0, stream_call.nextTree());
					}


					retval.tree = root_0;
					}

					}
					break;

			}
			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "baseArg"


	public static class deref_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "deref"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:77:1: deref : DOT Identifier -> ^( DEREF Identifier ) ;
	public final HoseParser.deref_return deref() throws RecognitionException {
		HoseParser.deref_return retval = new HoseParser.deref_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token DOT28=null;
		Token Identifier29=null;

		Object DOT28_tree=null;
		Object Identifier29_tree=null;
		RewriteRuleTokenStream stream_Identifier=new RewriteRuleTokenStream(adaptor,"token Identifier");
		RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:78:3: ( DOT Identifier -> ^( DEREF Identifier ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:78:5: DOT Identifier
			{
			DOT28=(Token)match(input,DOT,FOLLOW_DOT_in_deref429); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_DOT.add(DOT28);

			Identifier29=(Token)match(input,Identifier,FOLLOW_Identifier_in_deref431); if (state.failed) return retval; 
			if ( state.backtracking==0 ) stream_Identifier.add(Identifier29);

			// AST REWRITE
			// elements: Identifier
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 78:20: -> ^( DEREF Identifier )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:78:23: ^( DEREF Identifier )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEREF, "DEREF"), root_1);
				adaptor.addChild(root_1, stream_Identifier.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "deref"


	public static class derefList_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "derefList"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:81:1: derefList : ( deref )+ -> ^( DEREFLIST ( deref )+ ) ;
	public final HoseParser.derefList_return derefList() throws RecognitionException {
		HoseParser.derefList_return retval = new HoseParser.derefList_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		ParserRuleReturnScope deref30 =null;

		RewriteRuleSubtreeStream stream_deref=new RewriteRuleSubtreeStream(adaptor,"rule deref");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:82:3: ( ( deref )+ -> ^( DEREFLIST ( deref )+ ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:82:5: ( deref )+
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:82:5: ( deref )+
			int cnt5=0;
			loop5:
			while (true) {
				int alt5=2;
				int LA5_0 = input.LA(1);
				if ( (LA5_0==DOT) ) {
					alt5=1;
				}

				switch (alt5) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:82:5: deref
					{
					pushFollow(FOLLOW_deref_in_derefList452);
					deref30=deref();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_deref.add(deref30.getTree());
					}
					break;

				default :
					if ( cnt5 >= 1 ) break loop5;
					if (state.backtracking>0) {state.failed=true; return retval;}
					EarlyExitException eee = new EarlyExitException(5, input);
					throw eee;
				}
				cnt5++;
			}

			// AST REWRITE
			// elements: deref
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			if ( state.backtracking==0 ) {
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 82:12: -> ^( DEREFLIST ( deref )+ )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:82:15: ^( DEREFLIST ( deref )+ )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(DEREFLIST, "DEREFLIST"), root_1);
				if ( !(stream_deref.hasNext()) ) {
					throw new RewriteEarlyExitException();
				}
				while ( stream_deref.hasNext() ) {
					adaptor.addChild(root_1, stream_deref.nextTree());
				}
				stream_deref.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;
			}

			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "derefList"


	public static class arg_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "arg"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:85:1: arg : ( baseArg outkey derefList -> ^( ARG_OD baseArg ( outkey )? derefList ) | baseArg outkey -> ^( ARG_O baseArg ( outkey )? ) | baseArg derefList -> ^( ARG_D baseArg derefList ) | baseArg -> ^( ARG baseArg ) );
	public final HoseParser.arg_return arg() throws RecognitionException {
		HoseParser.arg_return retval = new HoseParser.arg_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		ParserRuleReturnScope baseArg31 =null;
		ParserRuleReturnScope outkey32 =null;
		ParserRuleReturnScope derefList33 =null;
		ParserRuleReturnScope baseArg34 =null;
		ParserRuleReturnScope outkey35 =null;
		ParserRuleReturnScope baseArg36 =null;
		ParserRuleReturnScope derefList37 =null;
		ParserRuleReturnScope baseArg38 =null;

		RewriteRuleSubtreeStream stream_outkey=new RewriteRuleSubtreeStream(adaptor,"rule outkey");
		RewriteRuleSubtreeStream stream_derefList=new RewriteRuleSubtreeStream(adaptor,"rule derefList");
		RewriteRuleSubtreeStream stream_baseArg=new RewriteRuleSubtreeStream(adaptor,"rule baseArg");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:86:3: ( baseArg outkey derefList -> ^( ARG_OD baseArg ( outkey )? derefList ) | baseArg outkey -> ^( ARG_O baseArg ( outkey )? ) | baseArg derefList -> ^( ARG_D baseArg derefList ) | baseArg -> ^( ARG baseArg ) )
			int alt6=4;
			int LA6_0 = input.LA(1);
			if ( (LA6_0==Double||LA6_0==Long||LA6_0==String) ) {
				int LA6_1 = input.LA(2);
				if ( (synpred10_Hose()) ) {
					alt6=1;
				}
				else if ( (synpred11_Hose()) ) {
					alt6=2;
				}
				else if ( (synpred12_Hose()) ) {
					alt6=3;
				}
				else if ( (true) ) {
					alt6=4;
				}

			}
			else if ( (LA6_0==Identifier) ) {
				int LA6_2 = input.LA(2);
				if ( (synpred10_Hose()) ) {
					alt6=1;
				}
				else if ( (synpred11_Hose()) ) {
					alt6=2;
				}
				else if ( (synpred12_Hose()) ) {
					alt6=3;
				}
				else if ( (true) ) {
					alt6=4;
				}

			}

			else {
				if (state.backtracking>0) {state.failed=true; return retval;}
				NoViableAltException nvae =
					new NoViableAltException("", 6, 0, input);
				throw nvae;
			}

			switch (alt6) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:86:5: baseArg outkey derefList
					{
					pushFollow(FOLLOW_baseArg_in_arg477);
					baseArg31=baseArg();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_baseArg.add(baseArg31.getTree());
					pushFollow(FOLLOW_outkey_in_arg479);
					outkey32=outkey();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_outkey.add(outkey32.getTree());
					pushFollow(FOLLOW_derefList_in_arg481);
					derefList33=derefList();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_derefList.add(derefList33.getTree());
					// AST REWRITE
					// elements: baseArg, derefList, outkey
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 86:30: -> ^( ARG_OD baseArg ( outkey )? derefList )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:86:33: ^( ARG_OD baseArg ( outkey )? derefList )
						{
						Object root_1 = (Object)adaptor.nil();
						root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARG_OD, "ARG_OD"), root_1);
						adaptor.addChild(root_1, stream_baseArg.nextTree());
						// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:86:50: ( outkey )?
						if ( stream_outkey.hasNext() ) {
							adaptor.addChild(root_1, stream_outkey.nextTree());
						}
						stream_outkey.reset();

						adaptor.addChild(root_1, stream_derefList.nextTree());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;
					}

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:87:5: baseArg outkey
					{
					pushFollow(FOLLOW_baseArg_in_arg500);
					baseArg34=baseArg();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_baseArg.add(baseArg34.getTree());
					pushFollow(FOLLOW_outkey_in_arg502);
					outkey35=outkey();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_outkey.add(outkey35.getTree());
					// AST REWRITE
					// elements: baseArg, outkey
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 87:20: -> ^( ARG_O baseArg ( outkey )? )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:87:23: ^( ARG_O baseArg ( outkey )? )
						{
						Object root_1 = (Object)adaptor.nil();
						root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARG_O, "ARG_O"), root_1);
						adaptor.addChild(root_1, stream_baseArg.nextTree());
						// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:87:39: ( outkey )?
						if ( stream_outkey.hasNext() ) {
							adaptor.addChild(root_1, stream_outkey.nextTree());
						}
						stream_outkey.reset();

						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;
					}

					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:88:5: baseArg derefList
					{
					pushFollow(FOLLOW_baseArg_in_arg519);
					baseArg36=baseArg();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_baseArg.add(baseArg36.getTree());
					pushFollow(FOLLOW_derefList_in_arg521);
					derefList37=derefList();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_derefList.add(derefList37.getTree());
					// AST REWRITE
					// elements: derefList, baseArg
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 88:23: -> ^( ARG_D baseArg derefList )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:88:26: ^( ARG_D baseArg derefList )
						{
						Object root_1 = (Object)adaptor.nil();
						root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARG_D, "ARG_D"), root_1);
						adaptor.addChild(root_1, stream_baseArg.nextTree());
						adaptor.addChild(root_1, stream_derefList.nextTree());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;
					}

					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:89:5: baseArg
					{
					pushFollow(FOLLOW_baseArg_in_arg537);
					baseArg38=baseArg();
					state._fsp--;
					if (state.failed) return retval;
					if ( state.backtracking==0 ) stream_baseArg.add(baseArg38.getTree());
					// AST REWRITE
					// elements: baseArg
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 89:13: -> ^( ARG baseArg )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:89:16: ^( ARG baseArg )
						{
						Object root_1 = (Object)adaptor.nil();
						root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARG, "ARG"), root_1);
						adaptor.addChild(root_1, stream_baseArg.nextTree());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;
					}

					}
					break;

			}
			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "arg"


	public static class outkey_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "outkey"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:92:1: outkey : ( OPENI Identifier CLOSEI -> ^( OUTKEY Identifier ) | OPENI Long CLOSEI -> ^( OUTINDEX Long ) );
	public final HoseParser.outkey_return outkey() throws RecognitionException {
		HoseParser.outkey_return retval = new HoseParser.outkey_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token OPENI39=null;
		Token Identifier40=null;
		Token CLOSEI41=null;
		Token OPENI42=null;
		Token Long43=null;
		Token CLOSEI44=null;

		Object OPENI39_tree=null;
		Object Identifier40_tree=null;
		Object CLOSEI41_tree=null;
		Object OPENI42_tree=null;
		Object Long43_tree=null;
		Object CLOSEI44_tree=null;
		RewriteRuleTokenStream stream_OPENI=new RewriteRuleTokenStream(adaptor,"token OPENI");
		RewriteRuleTokenStream stream_Identifier=new RewriteRuleTokenStream(adaptor,"token Identifier");
		RewriteRuleTokenStream stream_Long=new RewriteRuleTokenStream(adaptor,"token Long");
		RewriteRuleTokenStream stream_CLOSEI=new RewriteRuleTokenStream(adaptor,"token CLOSEI");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:93:3: ( OPENI Identifier CLOSEI -> ^( OUTKEY Identifier ) | OPENI Long CLOSEI -> ^( OUTINDEX Long ) )
			int alt7=2;
			int LA7_0 = input.LA(1);
			if ( (LA7_0==OPENI) ) {
				int LA7_1 = input.LA(2);
				if ( (LA7_1==Identifier) ) {
					alt7=1;
				}
				else if ( (LA7_1==Long) ) {
					alt7=2;
				}

				else {
					if (state.backtracking>0) {state.failed=true; return retval;}
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 7, 1, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

			}

			else {
				if (state.backtracking>0) {state.failed=true; return retval;}
				NoViableAltException nvae =
					new NoViableAltException("", 7, 0, input);
				throw nvae;
			}

			switch (alt7) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:93:5: OPENI Identifier CLOSEI
					{
					OPENI39=(Token)match(input,OPENI,FOLLOW_OPENI_in_outkey558); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_OPENI.add(OPENI39);

					Identifier40=(Token)match(input,Identifier,FOLLOW_Identifier_in_outkey560); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_Identifier.add(Identifier40);

					CLOSEI41=(Token)match(input,CLOSEI,FOLLOW_CLOSEI_in_outkey562); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_CLOSEI.add(CLOSEI41);

					// AST REWRITE
					// elements: Identifier
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 93:29: -> ^( OUTKEY Identifier )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:93:32: ^( OUTKEY Identifier )
						{
						Object root_1 = (Object)adaptor.nil();
						root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OUTKEY, "OUTKEY"), root_1);
						adaptor.addChild(root_1, stream_Identifier.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;
					}

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:94:5: OPENI Long CLOSEI
					{
					OPENI42=(Token)match(input,OPENI,FOLLOW_OPENI_in_outkey576); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_OPENI.add(OPENI42);

					Long43=(Token)match(input,Long,FOLLOW_Long_in_outkey578); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_Long.add(Long43);

					CLOSEI44=(Token)match(input,CLOSEI,FOLLOW_CLOSEI_in_outkey580); if (state.failed) return retval; 
					if ( state.backtracking==0 ) stream_CLOSEI.add(CLOSEI44);

					// AST REWRITE
					// elements: Long
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					if ( state.backtracking==0 ) {
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 94:23: -> ^( OUTINDEX Long )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:94:26: ^( OUTINDEX Long )
						{
						Object root_1 = (Object)adaptor.nil();
						root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OUTINDEX, "OUTINDEX"), root_1);
						adaptor.addChild(root_1, stream_Long.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;
					}

					}
					break;

			}
			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "outkey"


	public static class literal_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "literal"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:97:1: literal : ( String | Long | Double );
	public final HoseParser.literal_return literal() throws RecognitionException {
		HoseParser.literal_return retval = new HoseParser.literal_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token set45=null;

		Object set45_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:98:3: ( String | Long | Double )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:
			{
			root_0 = (Object)adaptor.nil();


			set45=input.LT(1);
			if ( input.LA(1)==Double||input.LA(1)==Long||input.LA(1)==String ) {
				input.consume();
				if ( state.backtracking==0 ) adaptor.addChild(root_0, (Object)adaptor.create(set45));
				state.errorRecovery=false;
				state.failed=false;
			}
			else {
				if (state.backtracking>0) {state.failed=true; return retval;}
				MismatchedSetException mse = new MismatchedSetException(null,input);
				throw mse;
			}
			}

			retval.stop = input.LT(-1);

			if ( state.backtracking==0 ) {
			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);
			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (Object)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "literal"

	// $ANTLR start synpred10_Hose
	public final void synpred10_Hose_fragment() throws RecognitionException {
		// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:86:5: ( baseArg outkey derefList )
		// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:86:5: baseArg outkey derefList
		{
		pushFollow(FOLLOW_baseArg_in_synpred10_Hose477);
		baseArg();
		state._fsp--;
		if (state.failed) return;

		pushFollow(FOLLOW_outkey_in_synpred10_Hose479);
		outkey();
		state._fsp--;
		if (state.failed) return;

		pushFollow(FOLLOW_derefList_in_synpred10_Hose481);
		derefList();
		state._fsp--;
		if (state.failed) return;

		}

	}
	// $ANTLR end synpred10_Hose

	// $ANTLR start synpred11_Hose
	public final void synpred11_Hose_fragment() throws RecognitionException {
		// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:87:5: ( baseArg outkey )
		// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:87:5: baseArg outkey
		{
		pushFollow(FOLLOW_baseArg_in_synpred11_Hose500);
		baseArg();
		state._fsp--;
		if (state.failed) return;

		pushFollow(FOLLOW_outkey_in_synpred11_Hose502);
		outkey();
		state._fsp--;
		if (state.failed) return;

		}

	}
	// $ANTLR end synpred11_Hose

	// $ANTLR start synpred12_Hose
	public final void synpred12_Hose_fragment() throws RecognitionException {
		// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:88:5: ( baseArg derefList )
		// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCore/src/main/antlr3/rapture/dsl/serfn/Hose.g:88:5: baseArg derefList
		{
		pushFollow(FOLLOW_baseArg_in_synpred12_Hose519);
		baseArg();
		state._fsp--;
		if (state.failed) return;

		pushFollow(FOLLOW_derefList_in_synpred12_Hose521);
		derefList();
		state._fsp--;
		if (state.failed) return;

		}

	}
	// $ANTLR end synpred12_Hose

	// Delegated rules

	public final boolean synpred10_Hose() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred10_Hose_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: "+re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed=false;
		return success;
	}
	public final boolean synpred12_Hose() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred12_Hose_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: "+re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed=false;
		return success;
	}
	public final boolean synpred11_Hose() {
		state.backtracking++;
		int start = input.mark();
		try {
			synpred11_Hose_fragment(); // can never throw exception
		} catch (RecognitionException re) {
			System.err.println("impossible: "+re);
		}
		boolean success = !state.failed;
		input.rewind(start);
		state.backtracking--;
		state.failed=false;
		return success;
	}



	public static final BitSet FOLLOW_signature_in_program135 = new BitSet(new long[]{0x0000000001000002L});
	public static final BitSet FOLLOW_statement_in_program137 = new BitSet(new long[]{0x0000000001000002L});
	public static final BitSet FOLLOW_OPENP_in_signature162 = new BitSet(new long[]{0x0000006000810000L});
	public static final BitSet FOLLOW_parmlist_in_signature166 = new BitSet(new long[]{0x0000000000002000L});
	public static final BitSet FOLLOW_CLOSEP_in_signature168 = new BitSet(new long[]{0x0000000004000000L});
	public static final BitSet FOLLOW_LINKS_in_signature170 = new BitSet(new long[]{0x0000000001000000L});
	public static final BitSet FOLLOW_Identifier_in_signature172 = new BitSet(new long[]{0x0000000040000000L});
	public static final BitSet FOLLOW_OPENP_in_signature174 = new BitSet(new long[]{0x0000006000810000L});
	public static final BitSet FOLLOW_parmlist_in_signature178 = new BitSet(new long[]{0x0000000000002000L});
	public static final BitSet FOLLOW_CLOSEP_in_signature180 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_parm_in_parmlist207 = new BitSet(new long[]{0x0000000000004002L});
	public static final BitSet FOLLOW_COMMA_in_parmlist210 = new BitSet(new long[]{0x0000006000810000L});
	public static final BitSet FOLLOW_parm_in_parmlist212 = new BitSet(new long[]{0x0000000000004002L});
	public static final BitSet FOLLOW_type_in_parm236 = new BitSet(new long[]{0x0000000001000000L});
	public static final BitSet FOLLOW_Identifier_in_parm238 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_Identifier_in_statement295 = new BitSet(new long[]{0x0000000004000000L});
	public static final BitSet FOLLOW_LINKS_in_statement297 = new BitSet(new long[]{0x0000010009200000L});
	public static final BitSet FOLLOW_arg_in_statement299 = new BitSet(new long[]{0x0000000800000000L});
	public static final BitSet FOLLOW_SEMI_in_statement301 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_Identifier_in_call329 = new BitSet(new long[]{0x0000000040000000L});
	public static final BitSet FOLLOW_OPENP_in_call331 = new BitSet(new long[]{0x0000010009200000L});
	public static final BitSet FOLLOW_arglist_in_call333 = new BitSet(new long[]{0x0000000000002000L});
	public static final BitSet FOLLOW_CLOSEP_in_call335 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_arg_in_arglist360 = new BitSet(new long[]{0x0000000000004002L});
	public static final BitSet FOLLOW_COMMA_in_arglist363 = new BitSet(new long[]{0x0000010009200000L});
	public static final BitSet FOLLOW_arg_in_arglist365 = new BitSet(new long[]{0x0000000000004002L});
	public static final BitSet FOLLOW_literal_in_baseArg390 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_Identifier_in_baseArg400 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_call_in_baseArg410 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DOT_in_deref429 = new BitSet(new long[]{0x0000000001000000L});
	public static final BitSet FOLLOW_Identifier_in_deref431 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_deref_in_derefList452 = new BitSet(new long[]{0x0000000000080002L});
	public static final BitSet FOLLOW_baseArg_in_arg477 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_outkey_in_arg479 = new BitSet(new long[]{0x0000000000080000L});
	public static final BitSet FOLLOW_derefList_in_arg481 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_baseArg_in_arg500 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_outkey_in_arg502 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_baseArg_in_arg519 = new BitSet(new long[]{0x0000000000080000L});
	public static final BitSet FOLLOW_derefList_in_arg521 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_baseArg_in_arg537 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_OPENI_in_outkey558 = new BitSet(new long[]{0x0000000001000000L});
	public static final BitSet FOLLOW_Identifier_in_outkey560 = new BitSet(new long[]{0x0000000000001000L});
	public static final BitSet FOLLOW_CLOSEI_in_outkey562 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_OPENI_in_outkey576 = new BitSet(new long[]{0x0000000008000000L});
	public static final BitSet FOLLOW_Long_in_outkey578 = new BitSet(new long[]{0x0000000000001000L});
	public static final BitSet FOLLOW_CLOSEI_in_outkey580 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_baseArg_in_synpred10_Hose477 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_outkey_in_synpred10_Hose479 = new BitSet(new long[]{0x0000000000080000L});
	public static final BitSet FOLLOW_derefList_in_synpred10_Hose481 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_baseArg_in_synpred11_Hose500 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_outkey_in_synpred11_Hose502 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_baseArg_in_synpred12_Hose519 = new BitSet(new long[]{0x0000000000080000L});
	public static final BitSet FOLLOW_derefList_in_synpred12_Hose521 = new BitSet(new long[]{0x0000000000000002L});
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy