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

reflex.ReflexTreeWalker Maven / Gradle / Ivy

// $ANTLR 3.5.2 /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g 2016-04-15 08:33:49

package reflex;
import java.math.*;
import java.io.PrintStream;
import reflex.function.*;
import reflex.node.*;
import reflex.node.io.*;
import reflex.node.functional.*;
import reflex.importer.*;
import reflex.debug.*;
import reflex.util.function.LanguageRegistry;
import reflex.util.*;
import reflex.value.ReflexValue;


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

@SuppressWarnings("all")
public class ReflexTreeWalker extends TreeParser {
	public static final String[] tokenNames = new String[] {
		"", "", "", "", "ASSIGNMENT", "Add", "All", "And", 
		"Any", "Archive", "As", "Assert", "Assign", "AsyncCall", "AsyncCallScript", 
		"AsyncOneShot", "AsyncStatus", "B64Compress", "B64Decompress", "BLOCK", 
		"BREAK", "Bool", "Break", "CASE", "CBrace", "CBracket", "CONSTASSIGNMENT", 
		"CONTINUE", "CParen", "Call", "Capabilities", "Case", "Cast", "Catch", 
		"Chain", "Close", "Collate", "Colon", "Comma", "Comment", "Const", "Continue", 
		"Copy", "DEFAULT", "DOTTEDASSIGNMENT", "Date", "Debug", "Def", "Default", 
		"Defined", "Delete", "Difference", "Digit", "Divide", "Do", "DottedIdentifier", 
		"DoubleQuote", "DropWhile", "ESC", "EXP", "EXPORT", "EXP_LIST", "Else", 
		"End", "EndLine", "Equals", "Evals", "Excl", "Export", "FORLIST", "FORTO", 
		"FUNCTION", "FUNC_CALL", "File", "FilterFn", "Fold", "For", "Format", 
		"FromJson", "GT", "GTEquals", "GenSchema", "GenStruct", "GetCache", "GetCh", 
		"GetLine", "HasCapability", "ID_LIST", "IF", "IMPORT", "IMPORTAS", "IMPORTPARAMS", 
		"INCLUDE", "INDEXES", "IS", "Identifier", "If", "Import", "In", "Int", 
		"Integer", "Is", "IsFile", "IsFolder", "Join", "Json", "KERNEL_CALL", 
		"KEYVAL", "KEYVAL_LIST", "KernelIdentifier", "Keys", "LIST", "LOOKUP", 
		"LT", "LTEquals", "Lib", "Long", "MAPDEF", "MATCH", "MD5", "METABLOCK", 
		"METAPULL", "MINUSASSIGNMENT", "MapFn", "Match", "Matches", "Merge", "MergeIf", 
		"Message", "MkDir", "Modulus", "Multiply", "NEGATE", "NEquals", "New", 
		"Null", "Number", "OBrace", "OBracket", "OParen", "OTHERWISE", "Or", "Otherwise", 
		"PATCH", "PFORLIST", "PFORTO", "PFor", "PLUSASSIGNMENT", "PORTF", "PORTR", 
		"PULL", "PUSH", "PackageIdentifier", "Patch", "Port", "PortA", "Pow", 
		"Print", "Println", "PropertyPlaceholder", "PullVal", "PushVal", "PutCache", 
		"QMark", "QUALIFIED_FUNC_CALL", "QuotedString", "RANGEINDEX", "RANGELOOKUP", 
		"REQUIRE", "RETURN", "RPull", "RPush", "Rand", "ReadDir", "Remove", "Replace", 
		"Return", "Round", "SColon", "SPARSE", "SPARSELOOKUP", "STATEMENTS", "SWITCH", 
		"Signal", "SingleQuote", "Size", "Sleep", "Sort", "Space", "Spawn", "Split", 
		"SplitWith", "String", "Structure", "Subtract", "Suspend", "SuspendWait", 
		"Switch", "TERNARY", "TakeWhile", "Template", "Throw", "Time", "Timer", 
		"To", "Transpose", "Try", "TypeOf", "UNARY_MIN", "Unique", "Unsupported", 
		"UrlDecode", "UrlEncode", "Use", "Uuid", "Vars", "Wait", "While", "'+='", 
		"'-='", "'..'", "'<<--'", "'array'", "'integer'", "'list'", "'meta'", 
		"'number'", "'of'", "'param'", "'property'", "'string'", "'with'"
	};
	public static final int EOF=-1;
	public static final int T__218=218;
	public static final int T__219=219;
	public static final int T__220=220;
	public static final int T__221=221;
	public static final int T__222=222;
	public static final int T__223=223;
	public static final int T__224=224;
	public static final int T__225=225;
	public static final int T__226=226;
	public static final int T__227=227;
	public static final int T__228=228;
	public static final int T__229=229;
	public static final int T__230=230;
	public static final int T__231=231;
	public static final int ASSIGNMENT=4;
	public static final int Add=5;
	public static final int All=6;
	public static final int And=7;
	public static final int Any=8;
	public static final int Archive=9;
	public static final int As=10;
	public static final int Assert=11;
	public static final int Assign=12;
	public static final int AsyncCall=13;
	public static final int AsyncCallScript=14;
	public static final int AsyncOneShot=15;
	public static final int AsyncStatus=16;
	public static final int B64Compress=17;
	public static final int B64Decompress=18;
	public static final int BLOCK=19;
	public static final int BREAK=20;
	public static final int Bool=21;
	public static final int Break=22;
	public static final int CASE=23;
	public static final int CBrace=24;
	public static final int CBracket=25;
	public static final int CONSTASSIGNMENT=26;
	public static final int CONTINUE=27;
	public static final int CParen=28;
	public static final int Call=29;
	public static final int Capabilities=30;
	public static final int Case=31;
	public static final int Cast=32;
	public static final int Catch=33;
	public static final int Chain=34;
	public static final int Close=35;
	public static final int Collate=36;
	public static final int Colon=37;
	public static final int Comma=38;
	public static final int Comment=39;
	public static final int Const=40;
	public static final int Continue=41;
	public static final int Copy=42;
	public static final int DEFAULT=43;
	public static final int DOTTEDASSIGNMENT=44;
	public static final int Date=45;
	public static final int Debug=46;
	public static final int Def=47;
	public static final int Default=48;
	public static final int Defined=49;
	public static final int Delete=50;
	public static final int Difference=51;
	public static final int Digit=52;
	public static final int Divide=53;
	public static final int Do=54;
	public static final int DottedIdentifier=55;
	public static final int DoubleQuote=56;
	public static final int DropWhile=57;
	public static final int ESC=58;
	public static final int EXP=59;
	public static final int EXPORT=60;
	public static final int EXP_LIST=61;
	public static final int Else=62;
	public static final int End=63;
	public static final int EndLine=64;
	public static final int Equals=65;
	public static final int Evals=66;
	public static final int Excl=67;
	public static final int Export=68;
	public static final int FORLIST=69;
	public static final int FORTO=70;
	public static final int FUNCTION=71;
	public static final int FUNC_CALL=72;
	public static final int File=73;
	public static final int FilterFn=74;
	public static final int Fold=75;
	public static final int For=76;
	public static final int Format=77;
	public static final int FromJson=78;
	public static final int GT=79;
	public static final int GTEquals=80;
	public static final int GenSchema=81;
	public static final int GenStruct=82;
	public static final int GetCache=83;
	public static final int GetCh=84;
	public static final int GetLine=85;
	public static final int HasCapability=86;
	public static final int ID_LIST=87;
	public static final int IF=88;
	public static final int IMPORT=89;
	public static final int IMPORTAS=90;
	public static final int IMPORTPARAMS=91;
	public static final int INCLUDE=92;
	public static final int INDEXES=93;
	public static final int IS=94;
	public static final int Identifier=95;
	public static final int If=96;
	public static final int Import=97;
	public static final int In=98;
	public static final int Int=99;
	public static final int Integer=100;
	public static final int Is=101;
	public static final int IsFile=102;
	public static final int IsFolder=103;
	public static final int Join=104;
	public static final int Json=105;
	public static final int KERNEL_CALL=106;
	public static final int KEYVAL=107;
	public static final int KEYVAL_LIST=108;
	public static final int KernelIdentifier=109;
	public static final int Keys=110;
	public static final int LIST=111;
	public static final int LOOKUP=112;
	public static final int LT=113;
	public static final int LTEquals=114;
	public static final int Lib=115;
	public static final int Long=116;
	public static final int MAPDEF=117;
	public static final int MATCH=118;
	public static final int MD5=119;
	public static final int METABLOCK=120;
	public static final int METAPULL=121;
	public static final int MINUSASSIGNMENT=122;
	public static final int MapFn=123;
	public static final int Match=124;
	public static final int Matches=125;
	public static final int Merge=126;
	public static final int MergeIf=127;
	public static final int Message=128;
	public static final int MkDir=129;
	public static final int Modulus=130;
	public static final int Multiply=131;
	public static final int NEGATE=132;
	public static final int NEquals=133;
	public static final int New=134;
	public static final int Null=135;
	public static final int Number=136;
	public static final int OBrace=137;
	public static final int OBracket=138;
	public static final int OParen=139;
	public static final int OTHERWISE=140;
	public static final int Or=141;
	public static final int Otherwise=142;
	public static final int PATCH=143;
	public static final int PFORLIST=144;
	public static final int PFORTO=145;
	public static final int PFor=146;
	public static final int PLUSASSIGNMENT=147;
	public static final int PORTF=148;
	public static final int PORTR=149;
	public static final int PULL=150;
	public static final int PUSH=151;
	public static final int PackageIdentifier=152;
	public static final int Patch=153;
	public static final int Port=154;
	public static final int PortA=155;
	public static final int Pow=156;
	public static final int Print=157;
	public static final int Println=158;
	public static final int PropertyPlaceholder=159;
	public static final int PullVal=160;
	public static final int PushVal=161;
	public static final int PutCache=162;
	public static final int QMark=163;
	public static final int QUALIFIED_FUNC_CALL=164;
	public static final int QuotedString=165;
	public static final int RANGEINDEX=166;
	public static final int RANGELOOKUP=167;
	public static final int REQUIRE=168;
	public static final int RETURN=169;
	public static final int RPull=170;
	public static final int RPush=171;
	public static final int Rand=172;
	public static final int ReadDir=173;
	public static final int Remove=174;
	public static final int Replace=175;
	public static final int Return=176;
	public static final int Round=177;
	public static final int SColon=178;
	public static final int SPARSE=179;
	public static final int SPARSELOOKUP=180;
	public static final int STATEMENTS=181;
	public static final int SWITCH=182;
	public static final int Signal=183;
	public static final int SingleQuote=184;
	public static final int Size=185;
	public static final int Sleep=186;
	public static final int Sort=187;
	public static final int Space=188;
	public static final int Spawn=189;
	public static final int Split=190;
	public static final int SplitWith=191;
	public static final int String=192;
	public static final int Structure=193;
	public static final int Subtract=194;
	public static final int Suspend=195;
	public static final int SuspendWait=196;
	public static final int Switch=197;
	public static final int TERNARY=198;
	public static final int TakeWhile=199;
	public static final int Template=200;
	public static final int Throw=201;
	public static final int Time=202;
	public static final int Timer=203;
	public static final int To=204;
	public static final int Transpose=205;
	public static final int Try=206;
	public static final int TypeOf=207;
	public static final int UNARY_MIN=208;
	public static final int Unique=209;
	public static final int Unsupported=210;
	public static final int UrlDecode=211;
	public static final int UrlEncode=212;
	public static final int Use=213;
	public static final int Uuid=214;
	public static final int Vars=215;
	public static final int Wait=216;
	public static final int While=217;

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

	// delegators


	public ReflexTreeWalker(TreeNodeStream input) {
		this(input, new RecognizerSharedState());
	}
	public ReflexTreeWalker(TreeNodeStream input, RecognizerSharedState state) {
		super(input, state);
	}

	@Override public String[] getTokenNames() { return ReflexTreeWalker.tokenNames; }
	@Override public String getGrammarFileName() { return "/Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g"; }


	  public LanguageRegistry languageRegistry = null;
	  public Scope currentScope = null;
	  private IReflexHandler handler = new DummyReflexHandler();
	  public ImportHandler importHandler = new ImportHandler();
	  private NamespaceStack namespaceStack;

	  public ReflexTreeWalker(CommonTreeNodeStream nodes, LanguageRegistry languageRegistry) {
	    this(nodes, null, languageRegistry);
	  }

	  public ReflexTreeWalker(CommonTreeNodeStream nds, Scope sc, LanguageRegistry languageRegistry) {
	    this(nds, sc, languageRegistry, languageRegistry.getNamespaceStack());
	  }

	  public ReflexTreeWalker(CommonTreeNodeStream nds, Scope sc, LanguageRegistry languageRegistry, NamespaceStack namespaceStack) {
	    super(nds);
	    if (sc == null) {
	      currentScope = Scope.getInitialScope();
	    } else {
	      currentScope = sc;
	    }
	    this.languageRegistry = languageRegistry;
	    importHandler.setReflexHandler(handler);
	    this.namespaceStack = namespaceStack;
	  }


	  public void setReflexHandler(IReflexHandler handler) {
	  	this.handler = handler;
	  	importHandler.setReflexHandler(handler);
	  }

	  public IReflexHandler getReflexHandler() {
	  	return handler;
	  }

	  public void setImportHandler(ImportHandler importHandler) {
	     this.importHandler = importHandler;
	  }

	  public ImportHandler getImportHandler() {
	     return importHandler;
	  }

	  @Override
	  public void reportError(RecognitionException e) {
	      super.reportError(e);
	  }




	// $ANTLR start "walk"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:75:1: walk returns [ReflexNode node] : ( metaBlock )? block ;
	public final ReflexNode walk() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode block1 =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:76:3: ( ( metaBlock )? block )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:76:6: ( metaBlock )? block
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:76:6: ( metaBlock )?
			int alt1=2;
			int LA1_0 = input.LA(1);
			if ( (LA1_0==METABLOCK) ) {
				alt1=1;
			}
			switch (alt1) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:76:6: metaBlock
					{
					pushFollow(FOLLOW_metaBlock_in_walk50);
					metaBlock();
					state._fsp--;

					}
					break;

			}

			pushFollow(FOLLOW_block_in_walk53);
			block1=block();
			state._fsp--;

			node = block1;
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "walk"



	// $ANTLR start "metaBlock"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:80:1: metaBlock : METABLOCK ;
	public final void metaBlock() throws RecognitionException {
		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:81:3: ( METABLOCK )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:81:5: METABLOCK
			{
			match(input,METABLOCK,FOLLOW_METABLOCK_in_metaBlock69); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "metaBlock"



	// $ANTLR start "block"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:84:1: block returns [ReflexNode node] : ^( BLOCK ^( STATEMENTS ( statement )* ) ^( RETURN ( expression )? ) ) ;
	public final ReflexNode block() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode statement2 =null;
		ReflexNode expression3 =null;


		  CommonTree ahead = (CommonTree) input.LT(1);
		  int line = ahead.getToken().getLine();
		  Scope scope = new Scope(currentScope);
		  currentScope = scope;
		  BlockNode bn = new BlockNode(line, handler, currentScope);
		  node = bn;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:96:3: ( ^( BLOCK ^( STATEMENTS ( statement )* ) ^( RETURN ( expression )? ) ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:96:6: ^( BLOCK ^( STATEMENTS ( statement )* ) ^( RETURN ( expression )? ) )
			{
			match(input,BLOCK,FOLLOW_BLOCK_in_block98); 
			match(input, Token.DOWN, null); 
			match(input,STATEMENTS,FOLLOW_STATEMENTS_in_block109); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:97:22: ( statement )*
				loop2:
				while (true) {
					int alt2=2;
					int LA2_0 = input.LA(1);
					if ( (LA2_0==ASSIGNMENT||LA2_0==BREAK||(LA2_0 >= CONSTASSIGNMENT && LA2_0 <= CONTINUE)||LA2_0==EXPORT||(LA2_0 >= FORLIST && LA2_0 <= FORTO)||LA2_0==FUNC_CALL||(LA2_0 >= IF && LA2_0 <= IMPORT)||LA2_0==KERNEL_CALL||LA2_0==MATCH||(LA2_0 >= METAPULL && LA2_0 <= MINUSASSIGNMENT)||(LA2_0 >= PATCH && LA2_0 <= PFORTO)||(LA2_0 >= PLUSASSIGNMENT && LA2_0 <= PUSH)||LA2_0==QUALIFIED_FUNC_CALL||LA2_0==SWITCH||LA2_0==Throw||LA2_0==Try||LA2_0==While) ) {
						alt2=1;
					}

					switch (alt2) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:97:23: statement
						{
						pushFollow(FOLLOW_statement_in_block112);
						statement2=statement();
						state._fsp--;

						 bn.addStatement(statement2); 
						}
						break;

					default :
						break loop2;
					}
				}

				match(input, Token.UP, null); 
			}

			match(input,RETURN,FOLLOW_RETURN_in_block129); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:98:22: ( expression )?
				int alt3=2;
				int LA3_0 = input.LA(1);
				if ( (LA3_0==Add||LA3_0==And||LA3_0==Bool||LA3_0==Divide||LA3_0==Equals||(LA3_0 >= GT && LA3_0 <= GTEquals)||LA3_0==In||LA3_0==Integer||(LA3_0 >= LOOKUP && LA3_0 <= LTEquals)||LA3_0==Long||(LA3_0 >= Modulus && LA3_0 <= NEquals)||(LA3_0 >= Null && LA3_0 <= Number)||LA3_0==Or||LA3_0==Pow||LA3_0==RANGELOOKUP||LA3_0==SPARSE||LA3_0==Subtract||LA3_0==TERNARY||LA3_0==UNARY_MIN) ) {
					alt3=1;
				}
				switch (alt3) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:98:23: expression
						{
						pushFollow(FOLLOW_expression_in_block136);
						expression3=expression();
						state._fsp--;

						 bn.addReturn(expression3);   
						}
						break;

				}

				match(input, Token.UP, null); 
			}

			match(input, Token.UP, null); 

			}


			  currentScope = currentScope.parent();

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "block"



	// $ANTLR start "exportStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:102:1: exportStatement returns [ReflexNode node] : ^( EXPORT i= Identifier b= block ) ;
	public final ReflexNode exportStatement() throws RecognitionException {
		ReflexNode node = null;


		CommonTree i=null;
		ReflexNode b =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:110:3: ( ^( EXPORT i= Identifier b= block ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:110:5: ^( EXPORT i= Identifier b= block )
			{
			match(input,EXPORT,FOLLOW_EXPORT_in_exportStatement177); 
			match(input, Token.DOWN, null); 
			i=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_exportStatement181); 
			 namespaceStack.push((i!=null?i.getText():null));
			pushFollow(FOLLOW_block_in_exportStatement187);
			b=block();
			state._fsp--;

			match(input, Token.UP, null); 

			  node = new ExportStatementNode(line, handler, currentScope, b ); 
			}


			  namespaceStack.pop();

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "exportStatement"



	// $ANTLR start "statement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:114:1: statement returns [ReflexNode node] : ( assignment | pull | metapull | push | patchStatement | port | importStatement | exportStatement | breakStatement | continueStatement | functionCall | throwStatement | matchStatement | switchStatement | ifStatement | forStatement | pforStatement | whileStatement | guardedStatement );
	public final ReflexNode statement() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode assignment4 =null;
		ReflexNode pull5 =null;
		ReflexNode metapull6 =null;
		ReflexNode push7 =null;
		ReflexNode patchStatement8 =null;
		ReflexNode port9 =null;
		ReflexNode importStatement10 =null;
		ReflexNode exportStatement11 =null;
		ReflexNode breakStatement12 =null;
		ReflexNode continueStatement13 =null;
		ReflexNode functionCall14 =null;
		ReflexNode throwStatement15 =null;
		ReflexNode matchStatement16 =null;
		ReflexNode switchStatement17 =null;
		ReflexNode ifStatement18 =null;
		ReflexNode forStatement19 =null;
		ReflexNode pforStatement20 =null;
		ReflexNode whileStatement21 =null;
		ReflexNode guardedStatement22 =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:115:3: ( assignment | pull | metapull | push | patchStatement | port | importStatement | exportStatement | breakStatement | continueStatement | functionCall | throwStatement | matchStatement | switchStatement | ifStatement | forStatement | pforStatement | whileStatement | guardedStatement )
			int alt4=19;
			switch ( input.LA(1) ) {
			case ASSIGNMENT:
			case CONSTASSIGNMENT:
			case MINUSASSIGNMENT:
			case PLUSASSIGNMENT:
				{
				alt4=1;
				}
				break;
			case PULL:
				{
				alt4=2;
				}
				break;
			case METAPULL:
				{
				alt4=3;
				}
				break;
			case PUSH:
				{
				alt4=4;
				}
				break;
			case PATCH:
				{
				alt4=5;
				}
				break;
			case PORTF:
			case PORTR:
				{
				alt4=6;
				}
				break;
			case IMPORT:
				{
				alt4=7;
				}
				break;
			case EXPORT:
				{
				alt4=8;
				}
				break;
			case BREAK:
				{
				alt4=9;
				}
				break;
			case CONTINUE:
				{
				alt4=10;
				}
				break;
			case FUNC_CALL:
			case KERNEL_CALL:
			case QUALIFIED_FUNC_CALL:
				{
				alt4=11;
				}
				break;
			case Throw:
				{
				alt4=12;
				}
				break;
			case MATCH:
				{
				alt4=13;
				}
				break;
			case SWITCH:
				{
				alt4=14;
				}
				break;
			case IF:
				{
				alt4=15;
				}
				break;
			case FORLIST:
			case FORTO:
				{
				alt4=16;
				}
				break;
			case PFORLIST:
			case PFORTO:
				{
				alt4=17;
				}
				break;
			case While:
				{
				alt4=18;
				}
				break;
			case Try:
				{
				alt4=19;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 4, 0, input);
				throw nvae;
			}
			switch (alt4) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:115:6: assignment
					{
					pushFollow(FOLLOW_assignment_in_statement209);
					assignment4=assignment();
					state._fsp--;

					 node = assignment4; 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:116:6: pull
					{
					pushFollow(FOLLOW_pull_in_statement218);
					pull5=pull();
					state._fsp--;

					 node = pull5; 
					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:117:6: metapull
					{
					pushFollow(FOLLOW_metapull_in_statement227);
					metapull6=metapull();
					state._fsp--;

					 node = metapull6; 
					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:118:6: push
					{
					pushFollow(FOLLOW_push_in_statement236);
					push7=push();
					state._fsp--;

					 node = push7; 
					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:119:6: patchStatement
					{
					pushFollow(FOLLOW_patchStatement_in_statement245);
					patchStatement8=patchStatement();
					state._fsp--;

					 node = patchStatement8; 
					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:120:6: port
					{
					pushFollow(FOLLOW_port_in_statement254);
					port9=port();
					state._fsp--;

					 node = port9; 
					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:121:6: importStatement
					{
					pushFollow(FOLLOW_importStatement_in_statement263);
					importStatement10=importStatement();
					state._fsp--;

					 node = importStatement10; 
					}
					break;
				case 8 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:122:6: exportStatement
					{
					pushFollow(FOLLOW_exportStatement_in_statement272);
					exportStatement11=exportStatement();
					state._fsp--;

					 node = exportStatement11; 
					}
					break;
				case 9 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:123:6: breakStatement
					{
					pushFollow(FOLLOW_breakStatement_in_statement281);
					breakStatement12=breakStatement();
					state._fsp--;

					 node = breakStatement12; 
					}
					break;
				case 10 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:124:6: continueStatement
					{
					pushFollow(FOLLOW_continueStatement_in_statement290);
					continueStatement13=continueStatement();
					state._fsp--;

					 node = continueStatement13; 
					}
					break;
				case 11 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:125:6: functionCall
					{
					pushFollow(FOLLOW_functionCall_in_statement299);
					functionCall14=functionCall();
					state._fsp--;

					 node = functionCall14; 
					}
					break;
				case 12 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:126:6: throwStatement
					{
					pushFollow(FOLLOW_throwStatement_in_statement308);
					throwStatement15=throwStatement();
					state._fsp--;

					 node = throwStatement15; 
					}
					break;
				case 13 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:127:6: matchStatement
					{
					pushFollow(FOLLOW_matchStatement_in_statement317);
					matchStatement16=matchStatement();
					state._fsp--;

					 node = matchStatement16; 
					}
					break;
				case 14 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:128:6: switchStatement
					{
					pushFollow(FOLLOW_switchStatement_in_statement326);
					switchStatement17=switchStatement();
					state._fsp--;

					 node = switchStatement17; 
					}
					break;
				case 15 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:129:6: ifStatement
					{
					pushFollow(FOLLOW_ifStatement_in_statement335);
					ifStatement18=ifStatement();
					state._fsp--;

					 node = ifStatement18; 
					}
					break;
				case 16 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:130:6: forStatement
					{
					pushFollow(FOLLOW_forStatement_in_statement344);
					forStatement19=forStatement();
					state._fsp--;

					 node = forStatement19;
					}
					break;
				case 17 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:131:6: pforStatement
					{
					pushFollow(FOLLOW_pforStatement_in_statement353);
					pforStatement20=pforStatement();
					state._fsp--;

					 node = pforStatement20; 
					}
					break;
				case 18 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:132:6: whileStatement
					{
					pushFollow(FOLLOW_whileStatement_in_statement362);
					whileStatement21=whileStatement();
					state._fsp--;

					 node = whileStatement21; 
					}
					break;
				case 19 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:133:6: guardedStatement
					{
					pushFollow(FOLLOW_guardedStatement_in_statement371);
					guardedStatement22=guardedStatement();
					state._fsp--;

					 node = guardedStatement22; 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "statement"



	// $ANTLR start "variant"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:136:1: variant returns [ReflexNode node] : ( Integer | Number | String | Long | Bool | Default );
	public final ReflexNode variant() throws RecognitionException {
		ReflexNode node = null;


		CommonTree Integer23=null;
		CommonTree Number24=null;
		CommonTree String25=null;
		CommonTree Long26=null;
		CommonTree Bool27=null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:141:3: ( Integer | Number | String | Long | Bool | Default )
			int alt5=6;
			switch ( input.LA(1) ) {
			case Integer:
				{
				alt5=1;
				}
				break;
			case Number:
				{
				alt5=2;
				}
				break;
			case String:
				{
				alt5=3;
				}
				break;
			case Long:
				{
				alt5=4;
				}
				break;
			case Bool:
				{
				alt5=5;
				}
				break;
			case Default:
				{
				alt5=6;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 5, 0, input);
				throw nvae;
			}
			switch (alt5) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:141:6: Integer
					{
					Integer23=(CommonTree)match(input,Integer,FOLLOW_Integer_in_variant398); 
					 node = AtomNode.getIntegerAtom(line, handler, currentScope, (Integer23!=null?Integer23.getText():null)); 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:142:6: Number
					{
					Number24=(CommonTree)match(input,Number,FOLLOW_Number_in_variant407); 
					 node = new AtomNode(line, handler, currentScope, new BigDecimal((Number24!=null?Number24.getText():null), MathContext.DECIMAL128)); 
					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:143:6: String
					{
					String25=(CommonTree)match(input,String,FOLLOW_String_in_variant416); 
					 node = AtomNode.getStringAtom(line, handler, currentScope, (String25!=null?String25.getText():null)); 
					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:144:6: Long
					{
					Long26=(CommonTree)match(input,Long,FOLLOW_Long_in_variant425); 
					 node = new AtomNode(line, handler, currentScope, java.lang.Long.parseLong((Long26!=null?Long26.getText():null))); 
					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:145:6: Bool
					{
					Bool27=(CommonTree)match(input,Bool,FOLLOW_Bool_in_variant434); 
					 node = new AtomNode(line, handler, currentScope, Boolean.parseBoolean((Bool27!=null?Bool27.getText():null))); 
					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:146:6: Default
					{
					match(input,Default,FOLLOW_Default_in_variant443); 
					 node = null; 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "variant"



	// $ANTLR start "switchStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:149:1: switchStatement returns [ReflexNode node] : SWITCH expression ( caseStatement[switchNode] )+ ;
	public final ReflexNode switchStatement() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode expression28 =null;


		  CommonTree ahead = (CommonTree) input.LT(1);
		  int line = ahead.getToken().getLine();
		  SwitchNode switchNode = new SwitchNode(line, handler, currentScope);
		  node = switchNode;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:156:3: ( SWITCH expression ( caseStatement[switchNode] )+ )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:156:6: SWITCH expression ( caseStatement[switchNode] )+
			{
			match(input,SWITCH,FOLLOW_SWITCH_in_switchStatement469); 
			pushFollow(FOLLOW_expression_in_switchStatement471);
			expression28=expression();
			state._fsp--;

			 switchNode.setSwitchValue(expression28); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:156:73: ( caseStatement[switchNode] )+
			int cnt6=0;
			loop6:
			while (true) {
				int alt6=2;
				int LA6_0 = input.LA(1);
				if ( (LA6_0==Bool||LA6_0==Default||LA6_0==Integer||LA6_0==Long||LA6_0==Number||LA6_0==String) ) {
					alt6=1;
				}

				switch (alt6) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:156:73: caseStatement[switchNode]
					{
					pushFollow(FOLLOW_caseStatement_in_switchStatement475);
					caseStatement(switchNode);
					state._fsp--;

					}
					break;

				default :
					if ( cnt6 >= 1 ) break loop6;
					EarlyExitException eee = new EarlyExitException(6, input);
					throw eee;
				}
				cnt6++;
			}

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "switchStatement"



	// $ANTLR start "caseStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:159:1: caseStatement[SwitchNode switchNode] : (v= variant )+ block ;
	public final void caseStatement(SwitchNode switchNode) throws RecognitionException {
		ReflexNode v =null;
		ReflexNode block29 =null;


		  List caseNodes = new ArrayList<>();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:163:3: ( (v= variant )+ block )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:163:5: (v= variant )+ block
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:163:5: (v= variant )+
			int cnt7=0;
			loop7:
			while (true) {
				int alt7=2;
				int LA7_0 = input.LA(1);
				if ( (LA7_0==Bool||LA7_0==Default||LA7_0==Integer||LA7_0==Long||LA7_0==Number||LA7_0==String) ) {
					alt7=1;
				}

				switch (alt7) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:163:6: v= variant
					{
					pushFollow(FOLLOW_variant_in_caseStatement503);
					v=variant();
					state._fsp--;

					 caseNodes.add(v); 
					}
					break;

				default :
					if ( cnt7 >= 1 ) break loop7;
					EarlyExitException eee = new EarlyExitException(7, input);
					throw eee;
				}
				cnt7++;
			}

			pushFollow(FOLLOW_block_in_caseStatement509);
			block29=block();
			state._fsp--;

			 for (ReflexNode caseNode : caseNodes) switchNode.addCase(caseNode, block29); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "caseStatement"



	// $ANTLR start "matchStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:167:1: matchStatement returns [ReflexNode node] : MATCH (ident= Identifier )? expression ( actions[idNode, matchNode] )* ( otherwise[idNode, matchNode] )? ;
	public final ReflexNode matchStatement() throws RecognitionException {
		ReflexNode node = null;


		CommonTree ident=null;
		ReflexNode expression30 =null;


		  CommonTree ahead = (CommonTree) input.LT(1);
		  int line = ahead.getToken().getLine();
		  MatchNode matchNode = new MatchNode(line, handler, currentScope);
		  node = matchNode;
		  String matchName = "__mAtCh__";

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:175:3: ( MATCH (ident= Identifier )? expression ( actions[idNode, matchNode] )* ( otherwise[idNode, matchNode] )? )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:175:5: MATCH (ident= Identifier )? expression ( actions[idNode, matchNode] )* ( otherwise[idNode, matchNode] )?
			{
			match(input,MATCH,FOLLOW_MATCH_in_matchStatement539); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:175:16: (ident= Identifier )?
			int alt8=2;
			int LA8_0 = input.LA(1);
			if ( (LA8_0==Identifier) ) {
				alt8=1;
			}
			switch (alt8) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:175:16: ident= Identifier
					{
					ident=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_matchStatement543); 
					}
					break;

			}

			 if (ident != null) matchName=ident.getText(); 
			pushFollow(FOLLOW_expression_in_matchStatement553);
			expression30=expression();
			state._fsp--;

			 
			  			matchNode.setMatchValue(new AssignmentNode(line, handler, currentScope, matchName, null, expression30));
			  			IdentifierNode idNode = new IdentifierNode(line, handler, currentScope, matchName, namespaceStack.asPrefix());
			  		
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:180:5: ( actions[idNode, matchNode] )*
			loop9:
			while (true) {
				int alt9=2;
				int LA9_0 = input.LA(1);
				if ( (LA9_0==Is) ) {
					alt9=1;
				}

				switch (alt9) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:180:5: actions[idNode, matchNode]
					{
					pushFollow(FOLLOW_actions_in_matchStatement561);
					actions(idNode, matchNode);
					state._fsp--;

					}
					break;

				default :
					break loop9;
				}
			}

			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:181:5: ( otherwise[idNode, matchNode] )?
			int alt10=2;
			int LA10_0 = input.LA(1);
			if ( (LA10_0==OTHERWISE) ) {
				alt10=1;
			}
			switch (alt10) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:181:5: otherwise[idNode, matchNode]
					{
					pushFollow(FOLLOW_otherwise_in_matchStatement570);
					otherwise(idNode, matchNode);
					state._fsp--;

					}
					break;

			}

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "matchStatement"



	// $ANTLR start "actions"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:184:1: actions[IdentifierNode idNode, MatchNode matchNode] : (comp= comparator[idNode] )+ block ;
	public final void actions(IdentifierNode idNode, MatchNode matchNode) throws RecognitionException {
		ReflexNode comp =null;
		ReflexNode block31 =null;


		  List compNodes = new ArrayList<>();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:188:3: ( (comp= comparator[idNode] )+ block )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:188:5: (comp= comparator[idNode] )+ block
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:188:5: (comp= comparator[idNode] )+
			int cnt11=0;
			loop11:
			while (true) {
				int alt11=2;
				int LA11_0 = input.LA(1);
				if ( (LA11_0==Is) ) {
					alt11=1;
				}

				switch (alt11) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:188:6: comp= comparator[idNode]
					{
					pushFollow(FOLLOW_comparator_in_actions595);
					comp=comparator(idNode);
					state._fsp--;

					 compNodes.add(comp); 
					}
					break;

				default :
					if ( cnt11 >= 1 ) break loop11;
					EarlyExitException eee = new EarlyExitException(11, input);
					throw eee;
				}
				cnt11++;
			}

			pushFollow(FOLLOW_block_in_actions602);
			block31=block();
			state._fsp--;

			 for (ReflexNode compNode : compNodes) matchNode.addCase(compNode, block31); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "actions"



	// $ANTLR start "comparator"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:191:1: comparator[IdentifierNode idNode] returns [ReflexNode node] : ( Is Equals rhs= expression | Is NEquals rhs= expression | Is GTEquals rhs= expression | Is LTEquals rhs= expression | Is GT rhs= expression | Is LT rhs= expression );
	public final ReflexNode comparator(IdentifierNode idNode) throws RecognitionException {
		ReflexNode node = null;


		ReflexNode rhs =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:196:3: ( Is Equals rhs= expression | Is NEquals rhs= expression | Is GTEquals rhs= expression | Is LTEquals rhs= expression | Is GT rhs= expression | Is LT rhs= expression )
			int alt12=6;
			int LA12_0 = input.LA(1);
			if ( (LA12_0==Is) ) {
				switch ( input.LA(2) ) {
				case Equals:
					{
					alt12=1;
					}
					break;
				case NEquals:
					{
					alt12=2;
					}
					break;
				case GTEquals:
					{
					alt12=3;
					}
					break;
				case LTEquals:
					{
					alt12=4;
					}
					break;
				case GT:
					{
					alt12=5;
					}
					break;
				case LT:
					{
					alt12=6;
					}
					break;
				default:
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 12, 1, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}
			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 12, 0, input);
				throw nvae;
			}

			switch (alt12) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:196:6: Is Equals rhs= expression
					{
					match(input,Is,FOLLOW_Is_in_comparator631); 
					match(input,Equals,FOLLOW_Equals_in_comparator633); 
					pushFollow(FOLLOW_expression_in_comparator637);
					rhs=expression();
					state._fsp--;

					 node = new EqualsNode(line, handler, currentScope, idNode, rhs); 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:197:6: Is NEquals rhs= expression
					{
					match(input,Is,FOLLOW_Is_in_comparator646); 
					match(input,NEquals,FOLLOW_NEquals_in_comparator648); 
					pushFollow(FOLLOW_expression_in_comparator652);
					rhs=expression();
					state._fsp--;

					 node = new NotEqualsNode(line,handler, currentScope, idNode, rhs); 
					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:198:6: Is GTEquals rhs= expression
					{
					match(input,Is,FOLLOW_Is_in_comparator661); 
					match(input,GTEquals,FOLLOW_GTEquals_in_comparator663); 
					pushFollow(FOLLOW_expression_in_comparator667);
					rhs=expression();
					state._fsp--;

					 node = new GTEqualsNode(line, handler, currentScope, idNode, rhs); 
					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:199:6: Is LTEquals rhs= expression
					{
					match(input,Is,FOLLOW_Is_in_comparator676); 
					match(input,LTEquals,FOLLOW_LTEquals_in_comparator678); 
					pushFollow(FOLLOW_expression_in_comparator682);
					rhs=expression();
					state._fsp--;

					 node = new LTEqualsNode(line, handler, currentScope, idNode, rhs); 
					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:200:6: Is GT rhs= expression
					{
					match(input,Is,FOLLOW_Is_in_comparator691); 
					match(input,GT,FOLLOW_GT_in_comparator693); 
					pushFollow(FOLLOW_expression_in_comparator697);
					rhs=expression();
					state._fsp--;

					 node = new GTNode(line, handler, currentScope, idNode, rhs); 
					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:201:6: Is LT rhs= expression
					{
					match(input,Is,FOLLOW_Is_in_comparator706); 
					match(input,LT,FOLLOW_LT_in_comparator708); 
					pushFollow(FOLLOW_expression_in_comparator712);
					rhs=expression();
					state._fsp--;

					 node = new LTNode(line, handler, currentScope, idNode, rhs); 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "comparator"



	// $ANTLR start "otherwise"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:204:1: otherwise[ReflexNode exp, MatchNode matchNode] : OTHERWISE block ;
	public final void otherwise(ReflexNode exp, MatchNode matchNode) throws RecognitionException {
		ReflexNode block32 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:209:3: ( OTHERWISE block )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:209:5: OTHERWISE block
			{
			match(input,OTHERWISE,FOLLOW_OTHERWISE_in_otherwise733); 
			pushFollow(FOLLOW_block_in_otherwise735);
			block32=block();
			state._fsp--;

			 matchNode.addCase(new AtomNode(line, handler, currentScope, new ReflexValue(line, Boolean.TRUE)), block32); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "otherwise"



	// $ANTLR start "assignment"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:212:1: assignment returns [ReflexNode node] : ( ^( CONSTASSIGNMENT i= Identifier e= expression ) | ^( ASSIGNMENT i= ( Identifier | DottedIdentifier ) (x= indexes )? e= expression ) | ^( PLUSASSIGNMENT i= Identifier e= expression ) | ^( MINUSASSIGNMENT i= Identifier e= expression ) );
	public final ReflexNode assignment() throws RecognitionException {
		ReflexNode node = null;


		CommonTree i=null;
		ReflexNode e =null;
		java.util.List> x =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:217:3: ( ^( CONSTASSIGNMENT i= Identifier e= expression ) | ^( ASSIGNMENT i= ( Identifier | DottedIdentifier ) (x= indexes )? e= expression ) | ^( PLUSASSIGNMENT i= Identifier e= expression ) | ^( MINUSASSIGNMENT i= Identifier e= expression ) )
			int alt14=4;
			switch ( input.LA(1) ) {
			case CONSTASSIGNMENT:
				{
				alt14=1;
				}
				break;
			case ASSIGNMENT:
				{
				alt14=2;
				}
				break;
			case PLUSASSIGNMENT:
				{
				alt14=3;
				}
				break;
			case MINUSASSIGNMENT:
				{
				alt14=4;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 14, 0, input);
				throw nvae;
			}
			switch (alt14) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:217:6: ^( CONSTASSIGNMENT i= Identifier e= expression )
					{
					match(input,CONSTASSIGNMENT,FOLLOW_CONSTASSIGNMENT_in_assignment761); 
					match(input, Token.DOWN, null); 
					i=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_assignment765); 
					pushFollow(FOLLOW_expression_in_assignment769);
					e=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new ConstAssignmentNode(line, handler, currentScope, (i!=null?i.getText():null), e,
					                                                                                    namespaceStack.asPrefix()); 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:219:5: ^( ASSIGNMENT i= ( Identifier | DottedIdentifier ) (x= indexes )? e= expression )
					{
					match(input,ASSIGNMENT,FOLLOW_ASSIGNMENT_in_assignment779); 
					match(input, Token.DOWN, null); 
					i=(CommonTree)input.LT(1);
					if ( input.LA(1)==DottedIdentifier||input.LA(1)==Identifier ) {
						input.consume();
						state.errorRecovery=false;
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						throw mse;
					}
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:219:53: (x= indexes )?
					int alt13=2;
					int LA13_0 = input.LA(1);
					if ( (LA13_0==INDEXES) ) {
						alt13=1;
					}
					switch (alt13) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:219:53: x= indexes
							{
							pushFollow(FOLLOW_indexes_in_assignment793);
							x=indexes();
							state._fsp--;

							}
							break;

					}

					pushFollow(FOLLOW_expression_in_assignment798);
					e=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new AssignmentNode(line, handler, currentScope, (i!=null?i.getText():null), x, e); 
					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:221:5: ^( PLUSASSIGNMENT i= Identifier e= expression )
					{
					match(input,PLUSASSIGNMENT,FOLLOW_PLUSASSIGNMENT_in_assignment813); 
					match(input, Token.DOWN, null); 
					i=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_assignment817); 
					pushFollow(FOLLOW_expression_in_assignment821);
					e=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PlusAssignmentNode(line, handler, currentScope, (i!=null?i.getText():null), e); 
					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:223:5: ^( MINUSASSIGNMENT i= Identifier e= expression )
					{
					match(input,MINUSASSIGNMENT,FOLLOW_MINUSASSIGNMENT_in_assignment836); 
					match(input, Token.DOWN, null); 
					i=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_assignment840); 
					pushFollow(FOLLOW_expression_in_assignment844);
					e=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PlusAssignmentNode(line, handler, currentScope, (i!=null?i.getText():null), new UnaryMinusNode(line, handler, currentScope, e)); 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "assignment"



	// $ANTLR start "breakStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:227:1: breakStatement returns [ReflexNode node] : BREAK ;
	public final ReflexNode breakStatement() throws RecognitionException {
		ReflexNode node = null;



		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:232:3: ( BREAK )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:232:5: BREAK
			{
			match(input,BREAK,FOLLOW_BREAK_in_breakStatement874); 
			  node = new BreakNode(line, handler, currentScope); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "breakStatement"



	// $ANTLR start "continueStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:235:1: continueStatement returns [ReflexNode node] : CONTINUE ;
	public final ReflexNode continueStatement() throws RecognitionException {
		ReflexNode node = null;



		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:240:3: ( CONTINUE )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:240:5: CONTINUE
			{
			match(input,CONTINUE,FOLLOW_CONTINUE_in_continueStatement898); 
			  node = new ContinueNode(line, handler, currentScope); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "continueStatement"



	// $ANTLR start "importStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:243:1: importStatement returns [ReflexNode node] : ^( IMPORT l= Identifier ^( IMPORTAS (alias= Identifier )? ) ^( IMPORTPARAMS (params= exprList )? ) ) ;
	public final ReflexNode importStatement() throws RecognitionException {
		ReflexNode node = null;


		CommonTree l=null;
		CommonTree alias=null;
		java.util.List params =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:248:3: ( ^( IMPORT l= Identifier ^( IMPORTAS (alias= Identifier )? ) ^( IMPORTPARAMS (params= exprList )? ) ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:248:5: ^( IMPORT l= Identifier ^( IMPORTAS (alias= Identifier )? ) ^( IMPORTPARAMS (params= exprList )? ) )
			{
			match(input,IMPORT,FOLLOW_IMPORT_in_importStatement923); 
			match(input, Token.DOWN, null); 
			l=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_importStatement927); 
			match(input,IMPORTAS,FOLLOW_IMPORTAS_in_importStatement930); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:248:43: (alias= Identifier )?
				int alt15=2;
				int LA15_0 = input.LA(1);
				if ( (LA15_0==Identifier) ) {
					alt15=1;
				}
				switch (alt15) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:248:43: alias= Identifier
						{
						alias=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_importStatement934); 
						}
						break;

				}

				match(input, Token.UP, null); 
			}

			match(input,IMPORTPARAMS,FOLLOW_IMPORTPARAMS_in_importStatement939); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:248:78: (params= exprList )?
				int alt16=2;
				int LA16_0 = input.LA(1);
				if ( (LA16_0==EXP_LIST) ) {
					alt16=1;
				}
				switch (alt16) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:248:78: params= exprList
						{
						pushFollow(FOLLOW_exprList_in_importStatement943);
						params=exprList();
						state._fsp--;

						}
						break;

				}

				match(input, Token.UP, null); 
			}

			match(input, Token.UP, null); 

			 node = new ImportNode(line, handler, currentScope, importHandler, (l!=null?l.getText():null), (alias!=null?alias.getText():null), params); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "importStatement"



	// $ANTLR start "port"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:251:1: port returns [ReflexNode node] : ( ^( PORTF l= expression r= expression ) | ^( PORTR expression ) );
	public final ReflexNode port() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode l =null;
		ReflexNode r =null;
		ReflexNode expression33 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:256:4: ( ^( PORTF l= expression r= expression ) | ^( PORTR expression ) )
			int alt17=2;
			int LA17_0 = input.LA(1);
			if ( (LA17_0==PORTF) ) {
				alt17=1;
			}
			else if ( (LA17_0==PORTR) ) {
				alt17=2;
			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 17, 0, input);
				throw nvae;
			}

			switch (alt17) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:256:6: ^( PORTF l= expression r= expression )
					{
					match(input,PORTF,FOLLOW_PORTF_in_port972); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_port976);
					l=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_port980);
					r=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PortANode(line, handler, currentScope, l, r); 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:258:6: ^( PORTR expression )
					{
					match(input,PORTR,FOLLOW_PORTR_in_port997); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_port999);
					expression33=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PortANode(line, handler, currentScope, null, expression33); 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "port"



	// $ANTLR start "patchStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:262:1: patchStatement returns [ReflexNode node] : ^( PATCH l= expression i= Identifier b= block ) ;
	public final ReflexNode patchStatement() throws RecognitionException {
		ReflexNode node = null;


		CommonTree i=null;
		ReflexNode l =null;
		ReflexNode b =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:267:2: ( ^( PATCH l= expression i= Identifier b= block ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:267:4: ^( PATCH l= expression i= Identifier b= block )
			{
			match(input,PATCH,FOLLOW_PATCH_in_patchStatement1031); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_expression_in_patchStatement1035);
			l=expression();
			state._fsp--;

			i=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_patchStatement1039); 
			pushFollow(FOLLOW_block_in_patchStatement1043);
			b=block();
			state._fsp--;

			match(input, Token.UP, null); 

			 node = new PatchNode(line, handler, currentScope, l, (i!=null?i.getText():null), b); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "patchStatement"



	// $ANTLR start "pull"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:271:1: pull returns [ReflexNode node] : ^( PULL i= Identifier e= expression ) ;
	public final ReflexNode pull() throws RecognitionException {
		ReflexNode node = null;


		CommonTree i=null;
		ReflexNode e =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:276:3: ( ^( PULL i= Identifier e= expression ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:276:5: ^( PULL i= Identifier e= expression )
			{
			match(input,PULL,FOLLOW_PULL_in_pull1072); 
			match(input, Token.DOWN, null); 
			i=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_pull1076); 
			pushFollow(FOLLOW_expression_in_pull1080);
			e=expression();
			state._fsp--;

			match(input, Token.UP, null); 

			 node = new PullNode(line, handler, currentScope, (i!=null?i.getText():null), e); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "pull"



	// $ANTLR start "metapull"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:280:1: metapull returns [ReflexNode node] : ^( METAPULL i= Identifier e= expression ) ;
	public final ReflexNode metapull() throws RecognitionException {
		ReflexNode node = null;


		CommonTree i=null;
		ReflexNode e =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:285:3: ( ^( METAPULL i= Identifier e= expression ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:285:5: ^( METAPULL i= Identifier e= expression )
			{
			match(input,METAPULL,FOLLOW_METAPULL_in_metapull1111); 
			match(input, Token.DOWN, null); 
			i=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_metapull1115); 
			pushFollow(FOLLOW_expression_in_metapull1119);
			e=expression();
			state._fsp--;

			match(input, Token.UP, null); 

			 node = new MetaPullNode(line, handler, currentScope, (i!=null?i.getText():null), e); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "metapull"



	// $ANTLR start "push"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:290:1: push returns [ReflexNode node] : ^( PUSH l= expression r= expression ) ;
	public final ReflexNode push() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode l =null;
		ReflexNode r =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:295:3: ( ^( PUSH l= expression r= expression ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:295:5: ^( PUSH l= expression r= expression )
			{
			match(input,PUSH,FOLLOW_PUSH_in_push1151); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_expression_in_push1155);
			l=expression();
			state._fsp--;

			pushFollow(FOLLOW_expression_in_push1159);
			r=expression();
			state._fsp--;

			match(input, Token.UP, null); 

			 node = new PushNode(line, handler, currentScope, l, r); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "push"



	// $ANTLR start "throwStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:299:1: throwStatement returns [ReflexNode node] : ^( Throw e= expression ) ;
	public final ReflexNode throwStatement() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode e =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:304:3: ( ^( Throw e= expression ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:304:5: ^( Throw e= expression )
			{
			match(input,Throw,FOLLOW_Throw_in_throwStatement1190); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_expression_in_throwStatement1194);
			e=expression();
			state._fsp--;

			match(input, Token.UP, null); 

			 node = new ThrowNode(line, handler, currentScope, e); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "throwStatement"



	// $ANTLR start "functionCall"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:308:1: functionCall returns [ReflexNode node] : ( ^( FUNC_CALL Identifier ( exprList )? ) | ^( FUNC_CALL PackageIdentifier ( exprList )? ) | ^( FUNC_CALL Println ( expression )? ) | ^( FUNC_CALL GetLine ( expression )? ) | ^( FUNC_CALL GetCh ( expression )? ) | ^( FUNC_CALL Capabilities ) | ^( FUNC_CALL HasCapability expression ) | ^( FUNC_CALL Print expression ) | ^( FUNC_CALL MapFn Identifier expression ) | ^( FUNC_CALL FilterFn Identifier expression ) | ^( FUNC_CALL Fold Identifier a= expression b= expression ) | ^( FUNC_CALL Any Identifier expression ) | ^( FUNC_CALL All Identifier expression ) | ^( FUNC_CALL TakeWhile Identifier expression ) | ^( FUNC_CALL DropWhile Identifier expression ) | ^( FUNC_CALL SplitWith Identifier expression ) | ^( FUNC_CALL Split str= expression sep= expression quoter= expression ) | ^( FUNC_CALL TypeOf expression ) | ^( FUNC_CALL Assert msg= expression exp= expression ) | ^( FUNC_CALL Size expression ) | ^( FUNC_CALL RPull u= expression ) | ^( FUNC_CALL RPush u= expression v= expression (o= expression )? ) | ^( FUNC_CALL Transpose expression ) | ^( FUNC_CALL Keys expression ) | ^( FUNC_CALL Sort arg= expression asc= expression ) | ^( FUNC_CALL Collate arg= expression locale= expression ) | ^( FUNC_CALL B64Compress expression ) | ^( FUNC_CALL B64Decompress expression ) | ^( FUNC_CALL Debug expression ) | ^( FUNC_CALL Date ( exprList )? ) | ^( FUNC_CALL Time ( expression )? ) | ^( FUNC_CALL Evals expression ) | ^( FUNC_CALL Vars ) | ^( FUNC_CALL ReadDir expression ) | ^( FUNC_CALL MkDir expression ) | ^( FUNC_CALL IsFile expression ) | ^( FUNC_CALL IsFolder expression ) | ^( FUNC_CALL File exprList ) | ^( FUNC_CALL Copy s= expression t= expression ) | ^( FUNC_CALL Archive expression ) | ^( FUNC_CALL Delete expression ) | ^( FUNC_CALL Port expression ) | ^( FUNC_CALL Suspend expression ) | ^( FUNC_CALL Close expression ) | ^( FUNC_CALL Timer ( expression )? ) | ^( FUNC_CALL Merge exprList ) | ^( FUNC_CALL Format exprList ) | ^( FUNC_CALL MergeIf exprList ) | ^( FUNC_CALL Replace v= expression s= expression t= expression ) | ^( FUNC_CALL Message a= expression m= expression ) | ^( FUNC_CALL PutCache v= expression n= expression (exp= expression )? ) | ^( FUNC_CALL GetCache n= expression ) | ^( FUNC_CALL Difference exprList ) | ^( FUNC_CALL Join exprList ) | ^( FUNC_CALL Unique exprList ) | ^( FUNC_CALL Json expression ) | ^( FUNC_CALL MD5 expression ) | ^( FUNC_CALL FromJson expression ) | ^( FUNC_CALL UrlEncode expression ) | ^( FUNC_CALL UrlDecode expression ) | ^( FUNC_CALL Uuid ) | ^( FUNC_CALL Remove Identifier k= expression ) | ^( FUNC_CALL AsyncCall s= expression (p= expression )? ) | ^( FUNC_CALL AsyncCallScript r= expression s= expression (p= expression )? ) | ^( FUNC_CALL AsyncStatus expression ) | ^( FUNC_CALL SuspendWait exprList ) | ^( FUNC_CALL Wait d= expression (in= expression retry= expression )? ) | ^( FUNC_CALL Signal d= expression v= expression ) | ^( FUNC_CALL Chain s= expression (p= expression )? ) | ^( FUNC_CALL Sleep expression ) | ^( FUNC_CALL Matches s= expression r= expression ) | ^( FUNC_CALL Cast a= expression b= expression ) | ^( FUNC_CALL Rand expression ) | ^( FUNC_CALL Round v= expression dp= expression ) | ^( FUNC_CALL Lib expression ) | ^( FUNC_CALL Call a= expression b= expression c= expression ) | ^( FUNC_CALL New a= expression ) | ^( FUNC_CALL GenSchema a= expression ) | ^( FUNC_CALL GenStruct Identifier a= expression ) | ^( FUNC_CALL Template t= expression p= expression ) | ^( FUNC_CALL Spawn p= expression (e= expression f= expression )? ) | ^( FUNC_CALL Defined Identifier ) | ^( KERNEL_CALL KernelIdentifier ( exprList )? ) | ^( QUALIFIED_FUNC_CALL DottedIdentifier ( exprList )? ) );
	public final ReflexNode functionCall() throws RecognitionException {
		ReflexNode node = null;


		CommonTree Identifier34=null;
		CommonTree PackageIdentifier36=null;
		CommonTree Identifier43=null;
		CommonTree Identifier45=null;
		CommonTree Identifier47=null;
		CommonTree Identifier48=null;
		CommonTree Identifier50=null;
		CommonTree Identifier52=null;
		CommonTree Identifier54=null;
		CommonTree Identifier56=null;
		CommonTree Identifier90=null;
		CommonTree Identifier96=null;
		CommonTree Identifier97=null;
		CommonTree KernelIdentifier98=null;
		CommonTree DottedIdentifier100=null;
		ReflexNode a =null;
		ReflexNode b =null;
		ReflexNode str =null;
		ReflexNode sep =null;
		ReflexNode quoter =null;
		ReflexNode msg =null;
		ReflexNode exp =null;
		ReflexNode u =null;
		ReflexNode v =null;
		ReflexNode o =null;
		ReflexNode arg =null;
		ReflexNode asc =null;
		ReflexNode locale =null;
		ReflexNode s =null;
		ReflexNode t =null;
		ReflexNode m =null;
		ReflexNode n =null;
		ReflexNode k =null;
		ReflexNode p =null;
		ReflexNode r =null;
		ReflexNode d =null;
		ReflexNode in =null;
		ReflexNode retry =null;
		ReflexNode dp =null;
		ReflexNode c =null;
		ReflexNode e =null;
		ReflexNode f =null;
		java.util.List exprList35 =null;
		java.util.List exprList37 =null;
		ReflexNode expression38 =null;
		ReflexNode expression39 =null;
		ReflexNode expression40 =null;
		ReflexNode expression41 =null;
		ReflexNode expression42 =null;
		ReflexNode expression44 =null;
		ReflexNode expression46 =null;
		ReflexNode expression49 =null;
		ReflexNode expression51 =null;
		ReflexNode expression53 =null;
		ReflexNode expression55 =null;
		ReflexNode expression57 =null;
		ReflexNode expression58 =null;
		ReflexNode expression59 =null;
		ReflexNode expression60 =null;
		ReflexNode expression61 =null;
		ReflexNode expression62 =null;
		ReflexNode expression63 =null;
		ReflexNode expression64 =null;
		java.util.List exprList65 =null;
		ReflexNode expression66 =null;
		ReflexNode expression67 =null;
		ReflexNode expression68 =null;
		ReflexNode expression69 =null;
		ReflexNode expression70 =null;
		ReflexNode expression71 =null;
		java.util.List exprList72 =null;
		ReflexNode expression73 =null;
		ReflexNode expression74 =null;
		ReflexNode expression75 =null;
		ReflexNode expression76 =null;
		ReflexNode expression77 =null;
		ReflexNode expression78 =null;
		java.util.List exprList79 =null;
		java.util.List exprList80 =null;
		java.util.List exprList81 =null;
		java.util.List exprList82 =null;
		java.util.List exprList83 =null;
		java.util.List exprList84 =null;
		ReflexNode expression85 =null;
		ReflexNode expression86 =null;
		ReflexNode expression87 =null;
		ReflexNode expression88 =null;
		ReflexNode expression89 =null;
		ReflexNode expression91 =null;
		java.util.List exprList92 =null;
		ReflexNode expression93 =null;
		ReflexNode expression94 =null;
		ReflexNode expression95 =null;
		java.util.List exprList99 =null;
		java.util.List exprList101 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:313:3: ( ^( FUNC_CALL Identifier ( exprList )? ) | ^( FUNC_CALL PackageIdentifier ( exprList )? ) | ^( FUNC_CALL Println ( expression )? ) | ^( FUNC_CALL GetLine ( expression )? ) | ^( FUNC_CALL GetCh ( expression )? ) | ^( FUNC_CALL Capabilities ) | ^( FUNC_CALL HasCapability expression ) | ^( FUNC_CALL Print expression ) | ^( FUNC_CALL MapFn Identifier expression ) | ^( FUNC_CALL FilterFn Identifier expression ) | ^( FUNC_CALL Fold Identifier a= expression b= expression ) | ^( FUNC_CALL Any Identifier expression ) | ^( FUNC_CALL All Identifier expression ) | ^( FUNC_CALL TakeWhile Identifier expression ) | ^( FUNC_CALL DropWhile Identifier expression ) | ^( FUNC_CALL SplitWith Identifier expression ) | ^( FUNC_CALL Split str= expression sep= expression quoter= expression ) | ^( FUNC_CALL TypeOf expression ) | ^( FUNC_CALL Assert msg= expression exp= expression ) | ^( FUNC_CALL Size expression ) | ^( FUNC_CALL RPull u= expression ) | ^( FUNC_CALL RPush u= expression v= expression (o= expression )? ) | ^( FUNC_CALL Transpose expression ) | ^( FUNC_CALL Keys expression ) | ^( FUNC_CALL Sort arg= expression asc= expression ) | ^( FUNC_CALL Collate arg= expression locale= expression ) | ^( FUNC_CALL B64Compress expression ) | ^( FUNC_CALL B64Decompress expression ) | ^( FUNC_CALL Debug expression ) | ^( FUNC_CALL Date ( exprList )? ) | ^( FUNC_CALL Time ( expression )? ) | ^( FUNC_CALL Evals expression ) | ^( FUNC_CALL Vars ) | ^( FUNC_CALL ReadDir expression ) | ^( FUNC_CALL MkDir expression ) | ^( FUNC_CALL IsFile expression ) | ^( FUNC_CALL IsFolder expression ) | ^( FUNC_CALL File exprList ) | ^( FUNC_CALL Copy s= expression t= expression ) | ^( FUNC_CALL Archive expression ) | ^( FUNC_CALL Delete expression ) | ^( FUNC_CALL Port expression ) | ^( FUNC_CALL Suspend expression ) | ^( FUNC_CALL Close expression ) | ^( FUNC_CALL Timer ( expression )? ) | ^( FUNC_CALL Merge exprList ) | ^( FUNC_CALL Format exprList ) | ^( FUNC_CALL MergeIf exprList ) | ^( FUNC_CALL Replace v= expression s= expression t= expression ) | ^( FUNC_CALL Message a= expression m= expression ) | ^( FUNC_CALL PutCache v= expression n= expression (exp= expression )? ) | ^( FUNC_CALL GetCache n= expression ) | ^( FUNC_CALL Difference exprList ) | ^( FUNC_CALL Join exprList ) | ^( FUNC_CALL Unique exprList ) | ^( FUNC_CALL Json expression ) | ^( FUNC_CALL MD5 expression ) | ^( FUNC_CALL FromJson expression ) | ^( FUNC_CALL UrlEncode expression ) | ^( FUNC_CALL UrlDecode expression ) | ^( FUNC_CALL Uuid ) | ^( FUNC_CALL Remove Identifier k= expression ) | ^( FUNC_CALL AsyncCall s= expression (p= expression )? ) | ^( FUNC_CALL AsyncCallScript r= expression s= expression (p= expression )? ) | ^( FUNC_CALL AsyncStatus expression ) | ^( FUNC_CALL SuspendWait exprList ) | ^( FUNC_CALL Wait d= expression (in= expression retry= expression )? ) | ^( FUNC_CALL Signal d= expression v= expression ) | ^( FUNC_CALL Chain s= expression (p= expression )? ) | ^( FUNC_CALL Sleep expression ) | ^( FUNC_CALL Matches s= expression r= expression ) | ^( FUNC_CALL Cast a= expression b= expression ) | ^( FUNC_CALL Rand expression ) | ^( FUNC_CALL Round v= expression dp= expression ) | ^( FUNC_CALL Lib expression ) | ^( FUNC_CALL Call a= expression b= expression c= expression ) | ^( FUNC_CALL New a= expression ) | ^( FUNC_CALL GenSchema a= expression ) | ^( FUNC_CALL GenStruct Identifier a= expression ) | ^( FUNC_CALL Template t= expression p= expression ) | ^( FUNC_CALL Spawn p= expression (e= expression f= expression )? ) | ^( FUNC_CALL Defined Identifier ) | ^( KERNEL_CALL KernelIdentifier ( exprList )? ) | ^( QUALIFIED_FUNC_CALL DottedIdentifier ( exprList )? ) )
			int alt35=84;
			alt35 = dfa35.predict(input);
			switch (alt35) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:313:6: ^( FUNC_CALL Identifier ( exprList )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1226); 
					match(input, Token.DOWN, null); 
					Identifier34=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1228); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:313:29: ( exprList )?
					int alt18=2;
					int LA18_0 = input.LA(1);
					if ( (LA18_0==EXP_LIST) ) {
						alt18=1;
					}
					switch (alt18) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:313:29: exprList
							{
							pushFollow(FOLLOW_exprList_in_functionCall1230);
							exprList35=exprList();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new FunctionCallNode(line, handler, currentScope, (Identifier34!=null?Identifier34.getText():null), exprList35, languageRegistry, importHandler, namespaceStack.asPrefix()); 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:314:6: ^( FUNC_CALL PackageIdentifier ( exprList )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1242); 
					match(input, Token.DOWN, null); 
					PackageIdentifier36=(CommonTree)match(input,PackageIdentifier,FOLLOW_PackageIdentifier_in_functionCall1244); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:314:36: ( exprList )?
					int alt19=2;
					int LA19_0 = input.LA(1);
					if ( (LA19_0==EXP_LIST) ) {
						alt19=1;
					}
					switch (alt19) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:314:36: exprList
							{
							pushFollow(FOLLOW_exprList_in_functionCall1246);
							exprList37=exprList();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new PackageCallNode(line, handler, currentScope, importHandler, (PackageIdentifier36!=null?PackageIdentifier36.getText():null), exprList37); 
					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:315:6: ^( FUNC_CALL Println ( expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1258); 
					match(input, Token.DOWN, null); 
					match(input,Println,FOLLOW_Println_in_functionCall1260); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:315:26: ( expression )?
					int alt20=2;
					int LA20_0 = input.LA(1);
					if ( (LA20_0==Add||LA20_0==And||LA20_0==Bool||LA20_0==Divide||LA20_0==Equals||(LA20_0 >= GT && LA20_0 <= GTEquals)||LA20_0==In||LA20_0==Integer||(LA20_0 >= LOOKUP && LA20_0 <= LTEquals)||LA20_0==Long||(LA20_0 >= Modulus && LA20_0 <= NEquals)||(LA20_0 >= Null && LA20_0 <= Number)||LA20_0==Or||LA20_0==Pow||LA20_0==RANGELOOKUP||LA20_0==SPARSE||LA20_0==Subtract||LA20_0==TERNARY||LA20_0==UNARY_MIN) ) {
						alt20=1;
					}
					switch (alt20) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:315:26: expression
							{
							pushFollow(FOLLOW_expression_in_functionCall1262);
							expression38=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new PrintlnNode(line, handler, currentScope, expression38); 
					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:316:6: ^( FUNC_CALL GetLine ( expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1274); 
					match(input, Token.DOWN, null); 
					match(input,GetLine,FOLLOW_GetLine_in_functionCall1276); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:316:26: ( expression )?
					int alt21=2;
					int LA21_0 = input.LA(1);
					if ( (LA21_0==Add||LA21_0==And||LA21_0==Bool||LA21_0==Divide||LA21_0==Equals||(LA21_0 >= GT && LA21_0 <= GTEquals)||LA21_0==In||LA21_0==Integer||(LA21_0 >= LOOKUP && LA21_0 <= LTEquals)||LA21_0==Long||(LA21_0 >= Modulus && LA21_0 <= NEquals)||(LA21_0 >= Null && LA21_0 <= Number)||LA21_0==Or||LA21_0==Pow||LA21_0==RANGELOOKUP||LA21_0==SPARSE||LA21_0==Subtract||LA21_0==TERNARY||LA21_0==UNARY_MIN) ) {
						alt21=1;
					}
					switch (alt21) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:316:26: expression
							{
							pushFollow(FOLLOW_expression_in_functionCall1278);
							expression39=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new GetLineNode(line, handler, currentScope, expression39); 
					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:317:6: ^( FUNC_CALL GetCh ( expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1290); 
					match(input, Token.DOWN, null); 
					match(input,GetCh,FOLLOW_GetCh_in_functionCall1292); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:317:24: ( expression )?
					int alt22=2;
					int LA22_0 = input.LA(1);
					if ( (LA22_0==Add||LA22_0==And||LA22_0==Bool||LA22_0==Divide||LA22_0==Equals||(LA22_0 >= GT && LA22_0 <= GTEquals)||LA22_0==In||LA22_0==Integer||(LA22_0 >= LOOKUP && LA22_0 <= LTEquals)||LA22_0==Long||(LA22_0 >= Modulus && LA22_0 <= NEquals)||(LA22_0 >= Null && LA22_0 <= Number)||LA22_0==Or||LA22_0==Pow||LA22_0==RANGELOOKUP||LA22_0==SPARSE||LA22_0==Subtract||LA22_0==TERNARY||LA22_0==UNARY_MIN) ) {
						alt22=1;
					}
					switch (alt22) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:317:24: expression
							{
							pushFollow(FOLLOW_expression_in_functionCall1294);
							expression40=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new GetChNode(line, handler, currentScope, expression40); 
					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:318:6: ^( FUNC_CALL Capabilities )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1306); 
					match(input, Token.DOWN, null); 
					match(input,Capabilities,FOLLOW_Capabilities_in_functionCall1308); 
					match(input, Token.UP, null); 

					 node = new CapabilitiesNode(line, handler, currentScope); 
					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:319:6: ^( FUNC_CALL HasCapability expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1320); 
					match(input, Token.DOWN, null); 
					match(input,HasCapability,FOLLOW_HasCapability_in_functionCall1322); 
					pushFollow(FOLLOW_expression_in_functionCall1324);
					expression41=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new HasCapabilityNode(line, handler, currentScope, expression41); 
					}
					break;
				case 8 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:320:6: ^( FUNC_CALL Print expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1336); 
					match(input, Token.DOWN, null); 
					match(input,Print,FOLLOW_Print_in_functionCall1338); 
					pushFollow(FOLLOW_expression_in_functionCall1340);
					expression42=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PrintNode(line, handler, currentScope, expression42); 
					}
					break;
				case 9 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:321:6: ^( FUNC_CALL MapFn Identifier expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1351); 
					match(input, Token.DOWN, null); 
					match(input,MapFn,FOLLOW_MapFn_in_functionCall1353); 
					Identifier43=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1355); 
					pushFollow(FOLLOW_expression_in_functionCall1357);
					expression44=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new MapFnNode(line, handler, currentScope, (Identifier43!=null?Identifier43.getText():null), expression44, languageRegistry, importHandler); 
					}
					break;
				case 10 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:322:6: ^( FUNC_CALL FilterFn Identifier expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1368); 
					match(input, Token.DOWN, null); 
					match(input,FilterFn,FOLLOW_FilterFn_in_functionCall1370); 
					Identifier45=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1372); 
					pushFollow(FOLLOW_expression_in_functionCall1374);
					expression46=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new FilterFnNode(line, handler, currentScope, (Identifier45!=null?Identifier45.getText():null), expression46, languageRegistry, importHandler); 
					}
					break;
				case 11 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:323:6: ^( FUNC_CALL Fold Identifier a= expression b= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1385); 
					match(input, Token.DOWN, null); 
					match(input,Fold,FOLLOW_Fold_in_functionCall1387); 
					Identifier47=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1389); 
					pushFollow(FOLLOW_expression_in_functionCall1393);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall1397);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new FoldNode(line, handler, currentScope, (Identifier47!=null?Identifier47.getText():null), a, b, languageRegistry, importHandler); 
					}
					break;
				case 12 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:324:6: ^( FUNC_CALL Any Identifier expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1408); 
					match(input, Token.DOWN, null); 
					match(input,Any,FOLLOW_Any_in_functionCall1410); 
					Identifier48=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1412); 
					pushFollow(FOLLOW_expression_in_functionCall1414);
					expression49=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new AnyNode(line, handler, currentScope, (Identifier48!=null?Identifier48.getText():null), expression49, languageRegistry, importHandler); 
					}
					break;
				case 13 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:325:6: ^( FUNC_CALL All Identifier expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1425); 
					match(input, Token.DOWN, null); 
					match(input,All,FOLLOW_All_in_functionCall1427); 
					Identifier50=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1429); 
					pushFollow(FOLLOW_expression_in_functionCall1431);
					expression51=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new AllNode(line, handler, currentScope, (Identifier50!=null?Identifier50.getText():null), expression51, languageRegistry, importHandler); 
					}
					break;
				case 14 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:326:6: ^( FUNC_CALL TakeWhile Identifier expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1442); 
					match(input, Token.DOWN, null); 
					match(input,TakeWhile,FOLLOW_TakeWhile_in_functionCall1444); 
					Identifier52=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1446); 
					pushFollow(FOLLOW_expression_in_functionCall1448);
					expression53=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new TakeWhileNode(line, handler, currentScope, (Identifier52!=null?Identifier52.getText():null), expression53, languageRegistry, importHandler); 
					}
					break;
				case 15 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:327:6: ^( FUNC_CALL DropWhile Identifier expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1459); 
					match(input, Token.DOWN, null); 
					match(input,DropWhile,FOLLOW_DropWhile_in_functionCall1461); 
					Identifier54=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1463); 
					pushFollow(FOLLOW_expression_in_functionCall1465);
					expression55=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new DropWhileNode(line, handler, currentScope, (Identifier54!=null?Identifier54.getText():null), expression55, languageRegistry, importHandler); 
					}
					break;
				case 16 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:328:6: ^( FUNC_CALL SplitWith Identifier expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1476); 
					match(input, Token.DOWN, null); 
					match(input,SplitWith,FOLLOW_SplitWith_in_functionCall1478); 
					Identifier56=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall1480); 
					pushFollow(FOLLOW_expression_in_functionCall1482);
					expression57=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SplitWithNode(line, handler, currentScope, (Identifier56!=null?Identifier56.getText():null), expression57, languageRegistry, importHandler); 
					}
					break;
				case 17 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:329:6: ^( FUNC_CALL Split str= expression sep= expression quoter= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1493); 
					match(input, Token.DOWN, null); 
					match(input,Split,FOLLOW_Split_in_functionCall1495); 
					pushFollow(FOLLOW_expression_in_functionCall1499);
					str=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall1503);
					sep=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall1507);
					quoter=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SplitNode(line, handler, currentScope, str, sep, quoter, languageRegistry, importHandler); 
					}
					break;
				case 18 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:330:6: ^( FUNC_CALL TypeOf expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1518); 
					match(input, Token.DOWN, null); 
					match(input,TypeOf,FOLLOW_TypeOf_in_functionCall1520); 
					pushFollow(FOLLOW_expression_in_functionCall1522);
					expression58=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new TypeOfNode(line, handler, currentScope, expression58); 
					}
					break;
				case 19 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:331:6: ^( FUNC_CALL Assert msg= expression exp= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1533); 
					match(input, Token.DOWN, null); 
					match(input,Assert,FOLLOW_Assert_in_functionCall1535); 
					pushFollow(FOLLOW_expression_in_functionCall1539);
					msg=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall1543);
					exp=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new AssertNode(line, handler, currentScope, msg, exp); 
					}
					break;
				case 20 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:332:6: ^( FUNC_CALL Size expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1554); 
					match(input, Token.DOWN, null); 
					match(input,Size,FOLLOW_Size_in_functionCall1556); 
					pushFollow(FOLLOW_expression_in_functionCall1558);
					expression59=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SizeNode(line, handler,currentScope,  expression59); 
					}
					break;
				case 21 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:333:6: ^( FUNC_CALL RPull u= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1569); 
					match(input, Token.DOWN, null); 
					match(input,RPull,FOLLOW_RPull_in_functionCall1571); 
					pushFollow(FOLLOW_expression_in_functionCall1575);
					u=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new RapturePullNode(line, handler, currentScope, u, null); 
					}
					break;
				case 22 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:334:6: ^( FUNC_CALL RPush u= expression v= expression (o= expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1586); 
					match(input, Token.DOWN, null); 
					match(input,RPush,FOLLOW_RPush_in_functionCall1588); 
					pushFollow(FOLLOW_expression_in_functionCall1592);
					u=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall1596);
					v=expression();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:334:51: (o= expression )?
					int alt23=2;
					int LA23_0 = input.LA(1);
					if ( (LA23_0==Add||LA23_0==And||LA23_0==Bool||LA23_0==Divide||LA23_0==Equals||(LA23_0 >= GT && LA23_0 <= GTEquals)||LA23_0==In||LA23_0==Integer||(LA23_0 >= LOOKUP && LA23_0 <= LTEquals)||LA23_0==Long||(LA23_0 >= Modulus && LA23_0 <= NEquals)||(LA23_0 >= Null && LA23_0 <= Number)||LA23_0==Or||LA23_0==Pow||LA23_0==RANGELOOKUP||LA23_0==SPARSE||LA23_0==Subtract||LA23_0==TERNARY||LA23_0==UNARY_MIN) ) {
						alt23=1;
					}
					switch (alt23) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:334:51: o= expression
							{
							pushFollow(FOLLOW_expression_in_functionCall1600);
							o=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new RapturePushNode(line, handler, currentScope, u, v, o); 
					}
					break;
				case 23 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:335:6: ^( FUNC_CALL Transpose expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1612); 
					match(input, Token.DOWN, null); 
					match(input,Transpose,FOLLOW_Transpose_in_functionCall1614); 
					pushFollow(FOLLOW_expression_in_functionCall1616);
					expression60=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new TransposeNode(line, handler, currentScope, expression60); 
					}
					break;
				case 24 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:336:6: ^( FUNC_CALL Keys expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1627); 
					match(input, Token.DOWN, null); 
					match(input,Keys,FOLLOW_Keys_in_functionCall1629); 
					pushFollow(FOLLOW_expression_in_functionCall1631);
					expression61=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new KeysNode(line, handler, currentScope, expression61); 
					}
					break;
				case 25 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:337:6: ^( FUNC_CALL Sort arg= expression asc= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1642); 
					match(input, Token.DOWN, null); 
					match(input,Sort,FOLLOW_Sort_in_functionCall1644); 
					pushFollow(FOLLOW_expression_in_functionCall1648);
					arg=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall1652);
					asc=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SortNode(line, handler, currentScope, arg, asc); 
					}
					break;
				case 26 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:338:6: ^( FUNC_CALL Collate arg= expression locale= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1663); 
					match(input, Token.DOWN, null); 
					match(input,Collate,FOLLOW_Collate_in_functionCall1665); 
					pushFollow(FOLLOW_expression_in_functionCall1669);
					arg=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall1673);
					locale=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new CollateNode(line, handler, currentScope, arg, locale); 
					}
					break;
				case 27 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:339:6: ^( FUNC_CALL B64Compress expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1684); 
					match(input, Token.DOWN, null); 
					match(input,B64Compress,FOLLOW_B64Compress_in_functionCall1686); 
					pushFollow(FOLLOW_expression_in_functionCall1688);
					expression62=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new B64Compress(line, handler, currentScope, expression62); 
					}
					break;
				case 28 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:340:6: ^( FUNC_CALL B64Decompress expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1699); 
					match(input, Token.DOWN, null); 
					match(input,B64Decompress,FOLLOW_B64Decompress_in_functionCall1701); 
					pushFollow(FOLLOW_expression_in_functionCall1703);
					expression63=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new B64Decompress(line, handler, currentScope, expression63); 
					}
					break;
				case 29 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:341:6: ^( FUNC_CALL Debug expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1714); 
					match(input, Token.DOWN, null); 
					match(input,Debug,FOLLOW_Debug_in_functionCall1716); 
					pushFollow(FOLLOW_expression_in_functionCall1718);
					expression64=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new DebugNode(line, handler, currentScope, expression64); 
					}
					break;
				case 30 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:342:6: ^( FUNC_CALL Date ( exprList )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1729); 
					match(input, Token.DOWN, null); 
					match(input,Date,FOLLOW_Date_in_functionCall1731); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:342:23: ( exprList )?
					int alt24=2;
					int LA24_0 = input.LA(1);
					if ( (LA24_0==EXP_LIST) ) {
						alt24=1;
					}
					switch (alt24) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:342:23: exprList
							{
							pushFollow(FOLLOW_exprList_in_functionCall1733);
							exprList65=exprList();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new DateNode(line, handler, currentScope, exprList65); 
					}
					break;
				case 31 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:343:6: ^( FUNC_CALL Time ( expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1746); 
					match(input, Token.DOWN, null); 
					match(input,Time,FOLLOW_Time_in_functionCall1748); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:343:23: ( expression )?
					int alt25=2;
					int LA25_0 = input.LA(1);
					if ( (LA25_0==Add||LA25_0==And||LA25_0==Bool||LA25_0==Divide||LA25_0==Equals||(LA25_0 >= GT && LA25_0 <= GTEquals)||LA25_0==In||LA25_0==Integer||(LA25_0 >= LOOKUP && LA25_0 <= LTEquals)||LA25_0==Long||(LA25_0 >= Modulus && LA25_0 <= NEquals)||(LA25_0 >= Null && LA25_0 <= Number)||LA25_0==Or||LA25_0==Pow||LA25_0==RANGELOOKUP||LA25_0==SPARSE||LA25_0==Subtract||LA25_0==TERNARY||LA25_0==UNARY_MIN) ) {
						alt25=1;
					}
					switch (alt25) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:343:23: expression
							{
							pushFollow(FOLLOW_expression_in_functionCall1750);
							expression66=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new TimeNode(line, handler, currentScope, expression66); 
					}
					break;
				case 32 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:344:6: ^( FUNC_CALL Evals expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1763); 
					match(input, Token.DOWN, null); 
					match(input,Evals,FOLLOW_Evals_in_functionCall1765); 
					pushFollow(FOLLOW_expression_in_functionCall1767);
					expression67=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new QuotedStringNode(line, handler, currentScope, expression67); 
					}
					break;
				case 33 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:345:6: ^( FUNC_CALL Vars )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1779); 
					match(input, Token.DOWN, null); 
					match(input,Vars,FOLLOW_Vars_in_functionCall1781); 
					match(input, Token.UP, null); 

					 node = new VarsNode(line, handler, currentScope); 
					}
					break;
				case 34 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:346:6: ^( FUNC_CALL ReadDir expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1792); 
					match(input, Token.DOWN, null); 
					match(input,ReadDir,FOLLOW_ReadDir_in_functionCall1794); 
					pushFollow(FOLLOW_expression_in_functionCall1796);
					expression68=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new ReadDirNode(line, handler, currentScope, expression68); 
					}
					break;
				case 35 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:347:6: ^( FUNC_CALL MkDir expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1807); 
					match(input, Token.DOWN, null); 
					match(input,MkDir,FOLLOW_MkDir_in_functionCall1809); 
					pushFollow(FOLLOW_expression_in_functionCall1811);
					expression69=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new MkDirNode(line, handler, currentScope, expression69); 
					}
					break;
				case 36 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:348:6: ^( FUNC_CALL IsFile expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1822); 
					match(input, Token.DOWN, null); 
					match(input,IsFile,FOLLOW_IsFile_in_functionCall1824); 
					pushFollow(FOLLOW_expression_in_functionCall1826);
					expression70=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new IsFileNode(line, handler, currentScope, expression70); 
					}
					break;
				case 37 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:349:6: ^( FUNC_CALL IsFolder expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1837); 
					match(input, Token.DOWN, null); 
					match(input,IsFolder,FOLLOW_IsFolder_in_functionCall1839); 
					pushFollow(FOLLOW_expression_in_functionCall1841);
					expression71=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new IsFolderNode(line, handler, currentScope, expression71); 
					}
					break;
				case 38 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:350:6: ^( FUNC_CALL File exprList )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1852); 
					match(input, Token.DOWN, null); 
					match(input,File,FOLLOW_File_in_functionCall1854); 
					pushFollow(FOLLOW_exprList_in_functionCall1856);
					exprList72=exprList();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new FileNode(line, handler, currentScope, exprList72); 
					}
					break;
				case 39 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:351:6: ^( FUNC_CALL Copy s= expression t= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1867); 
					match(input, Token.DOWN, null); 
					match(input,Copy,FOLLOW_Copy_in_functionCall1869); 
					pushFollow(FOLLOW_expression_in_functionCall1873);
					s=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall1877);
					t=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new CopyNode(line, handler, currentScope, s, t); 
					}
					break;
				case 40 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:352:6: ^( FUNC_CALL Archive expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1888); 
					match(input, Token.DOWN, null); 
					match(input,Archive,FOLLOW_Archive_in_functionCall1890); 
					pushFollow(FOLLOW_expression_in_functionCall1892);
					expression73=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new ArchiveNode(line, handler, currentScope, expression73); 
					}
					break;
				case 41 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:353:6: ^( FUNC_CALL Delete expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1903); 
					match(input, Token.DOWN, null); 
					match(input,Delete,FOLLOW_Delete_in_functionCall1905); 
					pushFollow(FOLLOW_expression_in_functionCall1907);
					expression74=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new DeleteNode(line, handler, currentScope, expression74); 
					}
					break;
				case 42 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:354:6: ^( FUNC_CALL Port expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1918); 
					match(input, Token.DOWN, null); 
					match(input,Port,FOLLOW_Port_in_functionCall1920); 
					pushFollow(FOLLOW_expression_in_functionCall1922);
					expression75=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PortNode(line, handler, currentScope, expression75); 
					}
					break;
				case 43 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:355:6: ^( FUNC_CALL Suspend expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1933); 
					match(input, Token.DOWN, null); 
					match(input,Suspend,FOLLOW_Suspend_in_functionCall1935); 
					pushFollow(FOLLOW_expression_in_functionCall1937);
					expression76=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SuspendNode(line, handler, currentScope, expression76); 
					}
					break;
				case 44 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:356:6: ^( FUNC_CALL Close expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1948); 
					match(input, Token.DOWN, null); 
					match(input,Close,FOLLOW_Close_in_functionCall1950); 
					pushFollow(FOLLOW_expression_in_functionCall1952);
					expression77=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new CloseNode(line, handler, currentScope, expression77); 
					}
					break;
				case 45 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:357:6: ^( FUNC_CALL Timer ( expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1963); 
					match(input, Token.DOWN, null); 
					match(input,Timer,FOLLOW_Timer_in_functionCall1965); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:357:24: ( expression )?
					int alt26=2;
					int LA26_0 = input.LA(1);
					if ( (LA26_0==Add||LA26_0==And||LA26_0==Bool||LA26_0==Divide||LA26_0==Equals||(LA26_0 >= GT && LA26_0 <= GTEquals)||LA26_0==In||LA26_0==Integer||(LA26_0 >= LOOKUP && LA26_0 <= LTEquals)||LA26_0==Long||(LA26_0 >= Modulus && LA26_0 <= NEquals)||(LA26_0 >= Null && LA26_0 <= Number)||LA26_0==Or||LA26_0==Pow||LA26_0==RANGELOOKUP||LA26_0==SPARSE||LA26_0==Subtract||LA26_0==TERNARY||LA26_0==UNARY_MIN) ) {
						alt26=1;
					}
					switch (alt26) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:357:24: expression
							{
							pushFollow(FOLLOW_expression_in_functionCall1967);
							expression78=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new TimerNode(line, handler, currentScope, expression78); 
					}
					break;
				case 46 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:358:6: ^( FUNC_CALL Merge exprList )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1979); 
					match(input, Token.DOWN, null); 
					match(input,Merge,FOLLOW_Merge_in_functionCall1981); 
					pushFollow(FOLLOW_exprList_in_functionCall1983);
					exprList79=exprList();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new MergeNode(line, handler, currentScope, exprList79); 
					}
					break;
				case 47 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:359:6: ^( FUNC_CALL Format exprList )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall1994); 
					match(input, Token.DOWN, null); 
					match(input,Format,FOLLOW_Format_in_functionCall1996); 
					pushFollow(FOLLOW_exprList_in_functionCall1998);
					exprList80=exprList();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new FormatNode(line, handler, currentScope, exprList80); 
					}
					break;
				case 48 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:360:6: ^( FUNC_CALL MergeIf exprList )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2009); 
					match(input, Token.DOWN, null); 
					match(input,MergeIf,FOLLOW_MergeIf_in_functionCall2011); 
					pushFollow(FOLLOW_exprList_in_functionCall2013);
					exprList81=exprList();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new MergeIfNode(line, handler, currentScope, exprList81); 
					}
					break;
				case 49 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:361:6: ^( FUNC_CALL Replace v= expression s= expression t= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2024); 
					match(input, Token.DOWN, null); 
					match(input,Replace,FOLLOW_Replace_in_functionCall2026); 
					pushFollow(FOLLOW_expression_in_functionCall2030);
					v=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2034);
					s=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2038);
					t=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new ReplaceNode(line, handler, currentScope, v, s, t); 
					}
					break;
				case 50 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:362:6: ^( FUNC_CALL Message a= expression m= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2049); 
					match(input, Token.DOWN, null); 
					match(input,Message,FOLLOW_Message_in_functionCall2051); 
					pushFollow(FOLLOW_expression_in_functionCall2055);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2059);
					m=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new MessageNode(line, handler, currentScope, a, m); 
					}
					break;
				case 51 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:363:6: ^( FUNC_CALL PutCache v= expression n= expression (exp= expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2070); 
					match(input, Token.DOWN, null); 
					match(input,PutCache,FOLLOW_PutCache_in_functionCall2072); 
					pushFollow(FOLLOW_expression_in_functionCall2076);
					v=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2080);
					n=expression();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:363:56: (exp= expression )?
					int alt27=2;
					int LA27_0 = input.LA(1);
					if ( (LA27_0==Add||LA27_0==And||LA27_0==Bool||LA27_0==Divide||LA27_0==Equals||(LA27_0 >= GT && LA27_0 <= GTEquals)||LA27_0==In||LA27_0==Integer||(LA27_0 >= LOOKUP && LA27_0 <= LTEquals)||LA27_0==Long||(LA27_0 >= Modulus && LA27_0 <= NEquals)||(LA27_0 >= Null && LA27_0 <= Number)||LA27_0==Or||LA27_0==Pow||LA27_0==RANGELOOKUP||LA27_0==SPARSE||LA27_0==Subtract||LA27_0==TERNARY||LA27_0==UNARY_MIN) ) {
						alt27=1;
					}
					switch (alt27) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:363:56: exp= expression
							{
							pushFollow(FOLLOW_expression_in_functionCall2084);
							exp=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new PutCacheNode(line, handler, currentScope, v, n, exp); 
					}
					break;
				case 52 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:364:6: ^( FUNC_CALL GetCache n= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2096); 
					match(input, Token.DOWN, null); 
					match(input,GetCache,FOLLOW_GetCache_in_functionCall2098); 
					pushFollow(FOLLOW_expression_in_functionCall2102);
					n=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new GetCacheNode(line, handler, currentScope, n); 
					}
					break;
				case 53 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:365:6: ^( FUNC_CALL Difference exprList )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2113); 
					match(input, Token.DOWN, null); 
					match(input,Difference,FOLLOW_Difference_in_functionCall2115); 
					pushFollow(FOLLOW_exprList_in_functionCall2117);
					exprList82=exprList();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new DifferenceNode(line, handler, currentScope, exprList82); 
					}
					break;
				case 54 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:366:6: ^( FUNC_CALL Join exprList )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2128); 
					match(input, Token.DOWN, null); 
					match(input,Join,FOLLOW_Join_in_functionCall2130); 
					pushFollow(FOLLOW_exprList_in_functionCall2132);
					exprList83=exprList();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new JoinNode(line, handler, currentScope, exprList83); 
					}
					break;
				case 55 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:367:6: ^( FUNC_CALL Unique exprList )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2143); 
					match(input, Token.DOWN, null); 
					match(input,Unique,FOLLOW_Unique_in_functionCall2145); 
					pushFollow(FOLLOW_exprList_in_functionCall2147);
					exprList84=exprList();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new UniqueNode(line, handler, currentScope, exprList84); 
					}
					break;
				case 56 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:368:6: ^( FUNC_CALL Json expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2158); 
					match(input, Token.DOWN, null); 
					match(input,Json,FOLLOW_Json_in_functionCall2160); 
					pushFollow(FOLLOW_expression_in_functionCall2162);
					expression85=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new JsonNode(line, handler, currentScope, expression85); 
					}
					break;
				case 57 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:370:6: ^( FUNC_CALL MD5 expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2174); 
					match(input, Token.DOWN, null); 
					match(input,MD5,FOLLOW_MD5_in_functionCall2176); 
					pushFollow(FOLLOW_expression_in_functionCall2179);
					expression86=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new MD5Node(line, handler, currentScope, expression86); 
					}
					break;
				case 58 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:371:6: ^( FUNC_CALL FromJson expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2190); 
					match(input, Token.DOWN, null); 
					match(input,FromJson,FOLLOW_FromJson_in_functionCall2192); 
					pushFollow(FOLLOW_expression_in_functionCall2194);
					expression87=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new FromJsonNode(line, handler, currentScope, expression87); 
					}
					break;
				case 59 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:372:6: ^( FUNC_CALL UrlEncode expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2205); 
					match(input, Token.DOWN, null); 
					match(input,UrlEncode,FOLLOW_UrlEncode_in_functionCall2207); 
					pushFollow(FOLLOW_expression_in_functionCall2209);
					expression88=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new UrlEncodeNode(line, handler, currentScope, expression88); 
					}
					break;
				case 60 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:373:6: ^( FUNC_CALL UrlDecode expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2220); 
					match(input, Token.DOWN, null); 
					match(input,UrlDecode,FOLLOW_UrlDecode_in_functionCall2222); 
					pushFollow(FOLLOW_expression_in_functionCall2224);
					expression89=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new UrlDecodeNode(line, handler, currentScope, expression89); 
					}
					break;
				case 61 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:374:6: ^( FUNC_CALL Uuid )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2235); 
					match(input, Token.DOWN, null); 
					match(input,Uuid,FOLLOW_Uuid_in_functionCall2237); 
					match(input, Token.UP, null); 

					 node = new UuidNode(line, handler, currentScope); 
					}
					break;
				case 62 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:375:6: ^( FUNC_CALL Remove Identifier k= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2248); 
					match(input, Token.DOWN, null); 
					match(input,Remove,FOLLOW_Remove_in_functionCall2250); 
					Identifier90=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall2252); 
					pushFollow(FOLLOW_expression_in_functionCall2256);
					k=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new RemoveNode(line, handler, currentScope, (Identifier90!=null?Identifier90.getText():null), k); 
					}
					break;
				case 63 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:376:6: ^( FUNC_CALL AsyncCall s= expression (p= expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2267); 
					match(input, Token.DOWN, null); 
					match(input,AsyncCall,FOLLOW_AsyncCall_in_functionCall2269); 
					pushFollow(FOLLOW_expression_in_functionCall2273);
					s=expression();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:376:42: (p= expression )?
					int alt28=2;
					int LA28_0 = input.LA(1);
					if ( (LA28_0==Add||LA28_0==And||LA28_0==Bool||LA28_0==Divide||LA28_0==Equals||(LA28_0 >= GT && LA28_0 <= GTEquals)||LA28_0==In||LA28_0==Integer||(LA28_0 >= LOOKUP && LA28_0 <= LTEquals)||LA28_0==Long||(LA28_0 >= Modulus && LA28_0 <= NEquals)||(LA28_0 >= Null && LA28_0 <= Number)||LA28_0==Or||LA28_0==Pow||LA28_0==RANGELOOKUP||LA28_0==SPARSE||LA28_0==Subtract||LA28_0==TERNARY||LA28_0==UNARY_MIN) ) {
						alt28=1;
					}
					switch (alt28) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:376:42: p= expression
							{
							pushFollow(FOLLOW_expression_in_functionCall2277);
							p=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new AsyncCallNode(line, handler, currentScope, s, p); 
					}
					break;
				case 64 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:377:6: ^( FUNC_CALL AsyncCallScript r= expression s= expression (p= expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2289); 
					match(input, Token.DOWN, null); 
					match(input,AsyncCallScript,FOLLOW_AsyncCallScript_in_functionCall2291); 
					pushFollow(FOLLOW_expression_in_functionCall2295);
					r=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2299);
					s=expression();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:377:61: (p= expression )?
					int alt29=2;
					int LA29_0 = input.LA(1);
					if ( (LA29_0==Add||LA29_0==And||LA29_0==Bool||LA29_0==Divide||LA29_0==Equals||(LA29_0 >= GT && LA29_0 <= GTEquals)||LA29_0==In||LA29_0==Integer||(LA29_0 >= LOOKUP && LA29_0 <= LTEquals)||LA29_0==Long||(LA29_0 >= Modulus && LA29_0 <= NEquals)||(LA29_0 >= Null && LA29_0 <= Number)||LA29_0==Or||LA29_0==Pow||LA29_0==RANGELOOKUP||LA29_0==SPARSE||LA29_0==Subtract||LA29_0==TERNARY||LA29_0==UNARY_MIN) ) {
						alt29=1;
					}
					switch (alt29) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:377:61: p= expression
							{
							pushFollow(FOLLOW_expression_in_functionCall2303);
							p=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new AsyncCallScriptNode(line, handler, currentScope, r, s, p); 
					}
					break;
				case 65 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:378:6: ^( FUNC_CALL AsyncStatus expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2315); 
					match(input, Token.DOWN, null); 
					match(input,AsyncStatus,FOLLOW_AsyncStatus_in_functionCall2317); 
					pushFollow(FOLLOW_expression_in_functionCall2319);
					expression91=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new AsyncStatusNode(line, handler, currentScope, expression91); 
					}
					break;
				case 66 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:379:6: ^( FUNC_CALL SuspendWait exprList )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2330); 
					match(input, Token.DOWN, null); 
					match(input,SuspendWait,FOLLOW_SuspendWait_in_functionCall2332); 
					pushFollow(FOLLOW_exprList_in_functionCall2334);
					exprList92=exprList();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SuspendWaitNode(line, handler, currentScope, exprList92); 
					}
					break;
				case 67 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:380:6: ^( FUNC_CALL Wait d= expression (in= expression retry= expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2345); 
					match(input, Token.DOWN, null); 
					match(input,Wait,FOLLOW_Wait_in_functionCall2347); 
					pushFollow(FOLLOW_expression_in_functionCall2351);
					d=expression();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:380:36: (in= expression retry= expression )?
					int alt30=2;
					int LA30_0 = input.LA(1);
					if ( (LA30_0==Add||LA30_0==And||LA30_0==Bool||LA30_0==Divide||LA30_0==Equals||(LA30_0 >= GT && LA30_0 <= GTEquals)||LA30_0==In||LA30_0==Integer||(LA30_0 >= LOOKUP && LA30_0 <= LTEquals)||LA30_0==Long||(LA30_0 >= Modulus && LA30_0 <= NEquals)||(LA30_0 >= Null && LA30_0 <= Number)||LA30_0==Or||LA30_0==Pow||LA30_0==RANGELOOKUP||LA30_0==SPARSE||LA30_0==Subtract||LA30_0==TERNARY||LA30_0==UNARY_MIN) ) {
						alt30=1;
					}
					switch (alt30) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:380:37: in= expression retry= expression
							{
							pushFollow(FOLLOW_expression_in_functionCall2356);
							in=expression();
							state._fsp--;

							pushFollow(FOLLOW_expression_in_functionCall2360);
							retry=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new WaitNode(line, handler, currentScope, d, in, retry); 
					}
					break;
				case 68 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:381:6: ^( FUNC_CALL Signal d= expression v= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2373); 
					match(input, Token.DOWN, null); 
					match(input,Signal,FOLLOW_Signal_in_functionCall2375); 
					pushFollow(FOLLOW_expression_in_functionCall2379);
					d=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2383);
					v=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SignalNode(line, handler, currentScope, d, v); 
					}
					break;
				case 69 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:382:6: ^( FUNC_CALL Chain s= expression (p= expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2394); 
					match(input, Token.DOWN, null); 
					match(input,Chain,FOLLOW_Chain_in_functionCall2396); 
					pushFollow(FOLLOW_expression_in_functionCall2400);
					s=expression();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:382:38: (p= expression )?
					int alt31=2;
					int LA31_0 = input.LA(1);
					if ( (LA31_0==Add||LA31_0==And||LA31_0==Bool||LA31_0==Divide||LA31_0==Equals||(LA31_0 >= GT && LA31_0 <= GTEquals)||LA31_0==In||LA31_0==Integer||(LA31_0 >= LOOKUP && LA31_0 <= LTEquals)||LA31_0==Long||(LA31_0 >= Modulus && LA31_0 <= NEquals)||(LA31_0 >= Null && LA31_0 <= Number)||LA31_0==Or||LA31_0==Pow||LA31_0==RANGELOOKUP||LA31_0==SPARSE||LA31_0==Subtract||LA31_0==TERNARY||LA31_0==UNARY_MIN) ) {
						alt31=1;
					}
					switch (alt31) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:382:38: p= expression
							{
							pushFollow(FOLLOW_expression_in_functionCall2404);
							p=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new ChainNode(line, handler, currentScope, s, p); 
					}
					break;
				case 70 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:383:6: ^( FUNC_CALL Sleep expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2416); 
					match(input, Token.DOWN, null); 
					match(input,Sleep,FOLLOW_Sleep_in_functionCall2418); 
					pushFollow(FOLLOW_expression_in_functionCall2420);
					expression93=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SleepNode(line, handler,currentScope,  expression93); 
					}
					break;
				case 71 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:384:6: ^( FUNC_CALL Matches s= expression r= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2431); 
					match(input, Token.DOWN, null); 
					match(input,Matches,FOLLOW_Matches_in_functionCall2433); 
					pushFollow(FOLLOW_expression_in_functionCall2437);
					s=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2441);
					r=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new MatchesNode(line, handler, currentScope, s, r); 
					}
					break;
				case 72 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:385:6: ^( FUNC_CALL Cast a= expression b= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2452); 
					match(input, Token.DOWN, null); 
					match(input,Cast,FOLLOW_Cast_in_functionCall2454); 
					pushFollow(FOLLOW_expression_in_functionCall2458);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2462);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new CastNode(line, handler, currentScope, a, b, languageRegistry, namespaceStack.asPrefix()); 
					}
					break;
				case 73 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:386:6: ^( FUNC_CALL Rand expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2473); 
					match(input, Token.DOWN, null); 
					match(input,Rand,FOLLOW_Rand_in_functionCall2475); 
					pushFollow(FOLLOW_expression_in_functionCall2477);
					expression94=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new RandNode(line, handler, currentScope, expression94); 
					}
					break;
				case 74 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:387:6: ^( FUNC_CALL Round v= expression dp= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2488); 
					match(input, Token.DOWN, null); 
					match(input,Round,FOLLOW_Round_in_functionCall2490); 
					pushFollow(FOLLOW_expression_in_functionCall2494);
					v=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2498);
					dp=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new RoundNode(line, handler, currentScope, v, dp); 
					}
					break;
				case 75 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:388:6: ^( FUNC_CALL Lib expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2509); 
					match(input, Token.DOWN, null); 
					match(input,Lib,FOLLOW_Lib_in_functionCall2511); 
					pushFollow(FOLLOW_expression_in_functionCall2513);
					expression95=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new LibNode(line, handler, currentScope, expression95); 
					}
					break;
				case 76 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:389:6: ^( FUNC_CALL Call a= expression b= expression c= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2524); 
					match(input, Token.DOWN, null); 
					match(input,Call,FOLLOW_Call_in_functionCall2526); 
					pushFollow(FOLLOW_expression_in_functionCall2530);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2534);
					b=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2538);
					c=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new CallNode(line, handler, currentScope, a, b, c); 
					}
					break;
				case 77 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:390:6: ^( FUNC_CALL New a= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2549); 
					match(input, Token.DOWN, null); 
					match(input,New,FOLLOW_New_in_functionCall2551); 
					pushFollow(FOLLOW_expression_in_functionCall2556);
					a=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new NewNode(line, handler, currentScope, a, languageRegistry, namespaceStack.asPrefix()); 
					}
					break;
				case 78 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:391:6: ^( FUNC_CALL GenSchema a= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2567); 
					match(input, Token.DOWN, null); 
					match(input,GenSchema,FOLLOW_GenSchema_in_functionCall2569); 
					pushFollow(FOLLOW_expression_in_functionCall2573);
					a=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new GenSchemaNode(line, handler, currentScope, a, languageRegistry, namespaceStack.asPrefix()); 
					}
					break;
				case 79 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:392:6: ^( FUNC_CALL GenStruct Identifier a= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2584); 
					match(input, Token.DOWN, null); 
					match(input,GenStruct,FOLLOW_GenStruct_in_functionCall2586); 
					Identifier96=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall2588); 
					pushFollow(FOLLOW_expression_in_functionCall2592);
					a=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new GenStructNode(line, handler, currentScope, (Identifier96!=null?Identifier96.getText():null), a, languageRegistry, namespaceStack.asPrefix()); 
					}
					break;
				case 80 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:393:6: ^( FUNC_CALL Template t= expression p= expression )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2603); 
					match(input, Token.DOWN, null); 
					match(input,Template,FOLLOW_Template_in_functionCall2605); 
					pushFollow(FOLLOW_expression_in_functionCall2609);
					t=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_functionCall2613);
					p=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new TemplateNode(line, handler, currentScope, t, p); 
					}
					break;
				case 81 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:394:6: ^( FUNC_CALL Spawn p= expression (e= expression f= expression )? )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2624); 
					match(input, Token.DOWN, null); 
					match(input,Spawn,FOLLOW_Spawn_in_functionCall2626); 
					pushFollow(FOLLOW_expression_in_functionCall2630);
					p=expression();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:394:37: (e= expression f= expression )?
					int alt32=2;
					int LA32_0 = input.LA(1);
					if ( (LA32_0==Add||LA32_0==And||LA32_0==Bool||LA32_0==Divide||LA32_0==Equals||(LA32_0 >= GT && LA32_0 <= GTEquals)||LA32_0==In||LA32_0==Integer||(LA32_0 >= LOOKUP && LA32_0 <= LTEquals)||LA32_0==Long||(LA32_0 >= Modulus && LA32_0 <= NEquals)||(LA32_0 >= Null && LA32_0 <= Number)||LA32_0==Or||LA32_0==Pow||LA32_0==RANGELOOKUP||LA32_0==SPARSE||LA32_0==Subtract||LA32_0==TERNARY||LA32_0==UNARY_MIN) ) {
						alt32=1;
					}
					switch (alt32) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:394:38: e= expression f= expression
							{
							pushFollow(FOLLOW_expression_in_functionCall2635);
							e=expression();
							state._fsp--;

							pushFollow(FOLLOW_expression_in_functionCall2639);
							f=expression();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new SpawnNode(line, handler, currentScope, p, e, f); 
					}
					break;
				case 82 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:395:6: ^( FUNC_CALL Defined Identifier )
					{
					match(input,FUNC_CALL,FOLLOW_FUNC_CALL_in_functionCall2652); 
					match(input, Token.DOWN, null); 
					match(input,Defined,FOLLOW_Defined_in_functionCall2654); 
					Identifier97=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_functionCall2656); 
					match(input, Token.UP, null); 

					 node = new DefinedNode(line, handler, currentScope, (Identifier97!=null?Identifier97.getText():null), namespaceStack.asPrefix()) ; 
					}
					break;
				case 83 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:396:6: ^( KERNEL_CALL KernelIdentifier ( exprList )? )
					{
					match(input,KERNEL_CALL,FOLLOW_KERNEL_CALL_in_functionCall2667); 
					match(input, Token.DOWN, null); 
					KernelIdentifier98=(CommonTree)match(input,KernelIdentifier,FOLLOW_KernelIdentifier_in_functionCall2669); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:396:37: ( exprList )?
					int alt33=2;
					int LA33_0 = input.LA(1);
					if ( (LA33_0==EXP_LIST) ) {
						alt33=1;
					}
					switch (alt33) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:396:37: exprList
							{
							pushFollow(FOLLOW_exprList_in_functionCall2671);
							exprList99=exprList();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new KernelCallNode(line, handler, currentScope, (KernelIdentifier98!=null?KernelIdentifier98.getText():null), exprList99); 
					}
					break;
				case 84 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:397:6: ^( QUALIFIED_FUNC_CALL DottedIdentifier ( exprList )? )
					{
					match(input,QUALIFIED_FUNC_CALL,FOLLOW_QUALIFIED_FUNC_CALL_in_functionCall2683); 
					match(input, Token.DOWN, null); 
					DottedIdentifier100=(CommonTree)match(input,DottedIdentifier,FOLLOW_DottedIdentifier_in_functionCall2685); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:397:45: ( exprList )?
					int alt34=2;
					int LA34_0 = input.LA(1);
					if ( (LA34_0==EXP_LIST) ) {
						alt34=1;
					}
					switch (alt34) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:397:45: exprList
							{
							pushFollow(FOLLOW_exprList_in_functionCall2687);
							exprList101=exprList();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = new QualifiedFuncCallNode(line, handler, currentScope, (DottedIdentifier100!=null?DottedIdentifier100.getText():null),
					                                                                      exprList101, languageRegistry, importHandler, namespaceStack.asPrefix()); 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "functionCall"



	// $ANTLR start "ifStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:401:1: ifStatement returns [ReflexNode node] : ^( IF ( ^( EXP expression b1= block ) )+ ( ^( EXP b2= block ) )? ) ;
	public final ReflexNode ifStatement() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode b1 =null;
		ReflexNode b2 =null;
		ReflexNode expression102 =null;


		  CommonTree ahead = (CommonTree) input.LT(1);
		  int line = ahead.getToken().getLine();
		  IfNode ifNode = new IfNode(line, handler, currentScope);
		  node = ifNode;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:408:3: ( ^( IF ( ^( EXP expression b1= block ) )+ ( ^( EXP b2= block ) )? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:408:6: ^( IF ( ^( EXP expression b1= block ) )+ ( ^( EXP b2= block ) )? )
			{
			match(input,IF,FOLLOW_IF_in_ifStatement2716); 
			match(input, Token.DOWN, null); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:409:8: ( ^( EXP expression b1= block ) )+
			int cnt36=0;
			loop36:
			while (true) {
				int alt36=2;
				int LA36_0 = input.LA(1);
				if ( (LA36_0==EXP) ) {
					int LA36_1 = input.LA(2);
					if ( (LA36_1==DOWN) ) {
						int LA36_3 = input.LA(3);
						if ( (LA36_3==Add||LA36_3==And||LA36_3==Bool||LA36_3==Divide||LA36_3==Equals||(LA36_3 >= GT && LA36_3 <= GTEquals)||LA36_3==In||LA36_3==Integer||(LA36_3 >= LOOKUP && LA36_3 <= LTEquals)||LA36_3==Long||(LA36_3 >= Modulus && LA36_3 <= NEquals)||(LA36_3 >= Null && LA36_3 <= Number)||LA36_3==Or||LA36_3==Pow||LA36_3==RANGELOOKUP||LA36_3==SPARSE||LA36_3==Subtract||LA36_3==TERNARY||LA36_3==UNARY_MIN) ) {
							alt36=1;
						}

					}

				}

				switch (alt36) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:409:9: ^( EXP expression b1= block )
					{
					match(input,EXP,FOLLOW_EXP_in_ifStatement2727); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_ifStatement2729);
					expression102=expression();
					state._fsp--;

					pushFollow(FOLLOW_block_in_ifStatement2733);
					b1=block();
					state._fsp--;

					match(input, Token.UP, null); 

					ifNode.addChoice(expression102,b1);
					}
					break;

				default :
					if ( cnt36 >= 1 ) break loop36;
					EarlyExitException eee = new EarlyExitException(36, input);
					throw eee;
				}
				cnt36++;
			}

			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:410:8: ( ^( EXP b2= block ) )?
			int alt37=2;
			int LA37_0 = input.LA(1);
			if ( (LA37_0==EXP) ) {
				alt37=1;
			}
			switch (alt37) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:410:9: ^( EXP b2= block )
					{
					match(input,EXP,FOLLOW_EXP_in_ifStatement2748); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_block_in_ifStatement2752);
					b2=block();
					state._fsp--;

					match(input, Token.UP, null); 

					ifNode.addChoice(new AtomNode(line, handler, currentScope, true),b2);
					}
					break;

			}

			match(input, Token.UP, null); 

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "ifStatement"



	// $ANTLR start "forStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:414:1: forStatement returns [ReflexNode node] : ( ^( FORLIST Identifier a= expression block ) | ^( FORTO Identifier a= expression b= expression block ) );
	public final ReflexNode forStatement() throws RecognitionException {
		ReflexNode node = null;


		CommonTree Identifier103=null;
		CommonTree Identifier105=null;
		ReflexNode a =null;
		ReflexNode b =null;
		ReflexNode block104 =null;
		ReflexNode block106 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:419:3: ( ^( FORLIST Identifier a= expression block ) | ^( FORTO Identifier a= expression b= expression block ) )
			int alt38=2;
			int LA38_0 = input.LA(1);
			if ( (LA38_0==FORLIST) ) {
				alt38=1;
			}
			else if ( (LA38_0==FORTO) ) {
				alt38=2;
			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 38, 0, input);
				throw nvae;
			}

			switch (alt38) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:420:6: ^( FORLIST Identifier a= expression block )
					{
					match(input,FORLIST,FOLLOW_FORLIST_in_forStatement2802); 
					match(input, Token.DOWN, null); 
					Identifier103=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_forStatement2804); 
					pushFollow(FOLLOW_expression_in_forStatement2808);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_block_in_forStatement2810);
					block104=block();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new ForInStatementNode(line, handler, currentScope, (Identifier103!=null?Identifier103.getText():null), a, block104); 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:421:6: ^( FORTO Identifier a= expression b= expression block )
					{
					match(input,FORTO,FOLLOW_FORTO_in_forStatement2821); 
					match(input, Token.DOWN, null); 
					Identifier105=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_forStatement2823); 
					pushFollow(FOLLOW_expression_in_forStatement2827);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_forStatement2831);
					b=expression();
					state._fsp--;

					pushFollow(FOLLOW_block_in_forStatement2833);
					block106=block();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new ForStatementNode(line, handler, currentScope, (Identifier105!=null?Identifier105.getText():null), a, b, block106); 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "forStatement"



	// $ANTLR start "pforStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:424:1: pforStatement returns [ReflexNode node] : ( ^( PFORLIST Identifier a= expression block ) | ^( PFORTO Identifier a= expression b= expression block ) );
	public final ReflexNode pforStatement() throws RecognitionException {
		ReflexNode node = null;


		CommonTree Identifier107=null;
		CommonTree Identifier109=null;
		ReflexNode a =null;
		ReflexNode b =null;
		ReflexNode block108 =null;
		ReflexNode block110 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:429:3: ( ^( PFORLIST Identifier a= expression block ) | ^( PFORTO Identifier a= expression b= expression block ) )
			int alt39=2;
			int LA39_0 = input.LA(1);
			if ( (LA39_0==PFORLIST) ) {
				alt39=1;
			}
			else if ( (LA39_0==PFORTO) ) {
				alt39=2;
			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 39, 0, input);
				throw nvae;
			}

			switch (alt39) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:430:6: ^( PFORLIST Identifier a= expression block )
					{
					match(input,PFORLIST,FOLLOW_PFORLIST_in_pforStatement2864); 
					match(input, Token.DOWN, null); 
					Identifier107=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_pforStatement2866); 
					pushFollow(FOLLOW_expression_in_pforStatement2870);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_block_in_pforStatement2872);
					block108=block();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PForInStatementNode(line, handler, currentScope, (Identifier107!=null?Identifier107.getText():null), a, block108); 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:431:6: ^( PFORTO Identifier a= expression b= expression block )
					{
					match(input,PFORTO,FOLLOW_PFORTO_in_pforStatement2883); 
					match(input, Token.DOWN, null); 
					Identifier109=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_pforStatement2885); 
					pushFollow(FOLLOW_expression_in_pforStatement2889);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_pforStatement2893);
					b=expression();
					state._fsp--;

					pushFollow(FOLLOW_block_in_pforStatement2895);
					block110=block();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PForStatementNode(line, handler, currentScope, (Identifier109!=null?Identifier109.getText():null), a, b, block110); 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "pforStatement"



	// $ANTLR start "whileStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:434:1: whileStatement returns [ReflexNode node] : ^( While expression block ) ;
	public final ReflexNode whileStatement() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode expression111 =null;
		ReflexNode block112 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:439:3: ( ^( While expression block ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:439:6: ^( While expression block )
			{
			match(input,While,FOLLOW_While_in_whileStatement2922); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_expression_in_whileStatement2924);
			expression111=expression();
			state._fsp--;

			pushFollow(FOLLOW_block_in_whileStatement2926);
			block112=block();
			state._fsp--;

			match(input, Token.UP, null); 

			 node = new WhileStatementNode(line, handler, currentScope,  expression111, block112); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "whileStatement"



	// $ANTLR start "guardedStatement"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:442:1: guardedStatement returns [ReflexNode node] : ^( Try g= block Identifier c= block ) ;
	public final ReflexNode guardedStatement() throws RecognitionException {
		ReflexNode node = null;


		CommonTree Identifier113=null;
		ReflexNode g =null;
		ReflexNode c =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:447:3: ( ^( Try g= block Identifier c= block ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:447:5: ^( Try g= block Identifier c= block )
			{
			match(input,Try,FOLLOW_Try_in_guardedStatement2952); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_block_in_guardedStatement2956);
			g=block();
			state._fsp--;

			Identifier113=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_guardedStatement2958); 
			pushFollow(FOLLOW_block_in_guardedStatement2962);
			c=block();
			state._fsp--;

			match(input, Token.UP, null); 

			 node = new GuardedNode(line, handler, currentScope, g, (Identifier113!=null?Identifier113.getText():null), c); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "guardedStatement"



	// $ANTLR start "sparsesep"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:450:1: sparsesep : '-' ;
	public final void sparsesep() throws RecognitionException {
		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:450:10: ( '-' )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:451:4: '-'
			{
			match(input,Subtract,FOLLOW_Subtract_in_sparsesep2978); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "sparsesep"



	// $ANTLR start "sparsematrix"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:453:1: sparsematrix returns [int dim] : ^( SPARSE ( sparsesep )+ ) ;
	public final int sparsematrix() throws RecognitionException {
		int dim = 0;



		   dim = 1;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:457:4: ( ^( SPARSE ( sparsesep )+ ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:457:6: ^( SPARSE ( sparsesep )+ )
			{
			match(input,SPARSE,FOLLOW_SPARSE_in_sparsematrix2999); 
			match(input, Token.DOWN, null); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:457:15: ( sparsesep )+
			int cnt40=0;
			loop40:
			while (true) {
				int alt40=2;
				int LA40_0 = input.LA(1);
				if ( (LA40_0==Subtract) ) {
					alt40=1;
				}

				switch (alt40) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:457:16: sparsesep
					{
					pushFollow(FOLLOW_sparsesep_in_sparsematrix3002);
					sparsesep();
					state._fsp--;

					 dim++; 
					}
					break;

				default :
					if ( cnt40 >= 1 ) break loop40;
					EarlyExitException eee = new EarlyExitException(40, input);
					throw eee;
				}
				cnt40++;
			}

			match(input, Token.UP, null); 

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return dim;
	}
	// $ANTLR end "sparsematrix"



	// $ANTLR start "idList"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:460:1: idList returns [java.util.List i] : ^( ID_LIST ( Identifier )+ ) ;
	public final java.util.List idList() throws RecognitionException {
		java.util.List i = null;


		CommonTree Identifier114=null;


		  i = new java.util.ArrayList();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:464:3: ( ^( ID_LIST ( Identifier )+ ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:464:6: ^( ID_LIST ( Identifier )+ )
			{
			match(input,ID_LIST,FOLLOW_ID_LIST_in_idList3033); 
			match(input, Token.DOWN, null); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:464:16: ( Identifier )+
			int cnt41=0;
			loop41:
			while (true) {
				int alt41=2;
				int LA41_0 = input.LA(1);
				if ( (LA41_0==Identifier) ) {
					alt41=1;
				}

				switch (alt41) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:464:17: Identifier
					{
					Identifier114=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_idList3036); 
					 i.add((Identifier114!=null?Identifier114.getText():null)); 
					}
					break;

				default :
					if ( cnt41 >= 1 ) break loop41;
					EarlyExitException eee = new EarlyExitException(41, input);
					throw eee;
				}
				cnt41++;
			}

			match(input, Token.UP, null); 

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return i;
	}
	// $ANTLR end "idList"



	// $ANTLR start "exprList"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:467:1: exprList returns [java.util.List e] : ^( EXP_LIST ( expression )+ ) ;
	public final java.util.List exprList() throws RecognitionException {
		java.util.List e = null;


		ReflexNode expression115 =null;


		   e = new java.util.ArrayList();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:471:3: ( ^( EXP_LIST ( expression )+ ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:471:6: ^( EXP_LIST ( expression )+ )
			{
			match(input,EXP_LIST,FOLLOW_EXP_LIST_in_exprList3065); 
			match(input, Token.DOWN, null); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:471:17: ( expression )+
			int cnt42=0;
			loop42:
			while (true) {
				int alt42=2;
				int LA42_0 = input.LA(1);
				if ( (LA42_0==Add||LA42_0==And||LA42_0==Bool||LA42_0==Divide||LA42_0==Equals||(LA42_0 >= GT && LA42_0 <= GTEquals)||LA42_0==In||LA42_0==Integer||(LA42_0 >= LOOKUP && LA42_0 <= LTEquals)||LA42_0==Long||(LA42_0 >= Modulus && LA42_0 <= NEquals)||(LA42_0 >= Null && LA42_0 <= Number)||LA42_0==Or||LA42_0==Pow||LA42_0==RANGELOOKUP||LA42_0==SPARSE||LA42_0==Subtract||LA42_0==TERNARY||LA42_0==UNARY_MIN) ) {
					alt42=1;
				}

				switch (alt42) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:471:18: expression
					{
					pushFollow(FOLLOW_expression_in_exprList3068);
					expression115=expression();
					state._fsp--;

					 e.add(expression115); 
					}
					break;

				default :
					if ( cnt42 >= 1 ) break loop42;
					EarlyExitException eee = new EarlyExitException(42, input);
					throw eee;
				}
				cnt42++;
			}

			match(input, Token.UP, null); 

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return e;
	}
	// $ANTLR end "exprList"



	// $ANTLR start "expression"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:474:1: expression returns [ReflexNode node] : ( ^( TERNARY a= expression b= expression c= expression ) | ^( In a= expression b= expression ) | ^( '||' a= expression b= expression ) | ^( '&&' a= expression b= expression ) | ^( '==' a= expression b= expression ) | ^( '!=' a= expression b= expression ) | ^( '>=' a= expression b= expression ) | ^( '<=' a= expression b= expression ) | ^( '>' a= expression b= expression ) | ^( '<' a= expression b= expression ) | ^( '+' a= expression b= expression ) | ^( '-' a= expression b= expression ) | ^( '*' a= expression b= expression ) | ^( '/' a= expression b= expression ) | ^( '%' a= expression b= expression ) | ^( '^' a= expression b= expression ) | ^( UNARY_MIN a= expression ) | ^( NEGATE a= expression ) | Number | Integer | Long | Bool | Null | sparsematrix | lookup );
	public final ReflexNode expression() throws RecognitionException {
		ReflexNode node = null;


		CommonTree Number116=null;
		CommonTree Integer117=null;
		CommonTree Long118=null;
		CommonTree Bool119=null;
		ReflexNode a =null;
		ReflexNode b =null;
		ReflexNode c =null;
		int sparsematrix120 =0;
		ReflexNode lookup121 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:479:3: ( ^( TERNARY a= expression b= expression c= expression ) | ^( In a= expression b= expression ) | ^( '||' a= expression b= expression ) | ^( '&&' a= expression b= expression ) | ^( '==' a= expression b= expression ) | ^( '!=' a= expression b= expression ) | ^( '>=' a= expression b= expression ) | ^( '<=' a= expression b= expression ) | ^( '>' a= expression b= expression ) | ^( '<' a= expression b= expression ) | ^( '+' a= expression b= expression ) | ^( '-' a= expression b= expression ) | ^( '*' a= expression b= expression ) | ^( '/' a= expression b= expression ) | ^( '%' a= expression b= expression ) | ^( '^' a= expression b= expression ) | ^( UNARY_MIN a= expression ) | ^( NEGATE a= expression ) | Number | Integer | Long | Bool | Null | sparsematrix | lookup )
			int alt43=25;
			switch ( input.LA(1) ) {
			case TERNARY:
				{
				alt43=1;
				}
				break;
			case In:
				{
				alt43=2;
				}
				break;
			case Or:
				{
				alt43=3;
				}
				break;
			case And:
				{
				alt43=4;
				}
				break;
			case Equals:
				{
				alt43=5;
				}
				break;
			case NEquals:
				{
				alt43=6;
				}
				break;
			case GTEquals:
				{
				alt43=7;
				}
				break;
			case LTEquals:
				{
				alt43=8;
				}
				break;
			case GT:
				{
				alt43=9;
				}
				break;
			case LT:
				{
				alt43=10;
				}
				break;
			case Add:
				{
				alt43=11;
				}
				break;
			case Subtract:
				{
				alt43=12;
				}
				break;
			case Multiply:
				{
				alt43=13;
				}
				break;
			case Divide:
				{
				alt43=14;
				}
				break;
			case Modulus:
				{
				alt43=15;
				}
				break;
			case Pow:
				{
				alt43=16;
				}
				break;
			case UNARY_MIN:
				{
				alt43=17;
				}
				break;
			case NEGATE:
				{
				alt43=18;
				}
				break;
			case Number:
				{
				alt43=19;
				}
				break;
			case Integer:
				{
				alt43=20;
				}
				break;
			case Long:
				{
				alt43=21;
				}
				break;
			case Bool:
				{
				alt43=22;
				}
				break;
			case Null:
				{
				alt43=23;
				}
				break;
			case SPARSE:
				{
				alt43=24;
				}
				break;
			case LOOKUP:
			case RANGELOOKUP:
				{
				alt43=25;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 43, 0, input);
				throw nvae;
			}
			switch (alt43) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:479:6: ^( TERNARY a= expression b= expression c= expression )
					{
					match(input,TERNARY,FOLLOW_TERNARY_in_expression3097); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3101);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3105);
					b=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3109);
					c=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new TernaryNode(line, handler, currentScope, a, b, c); 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:480:6: ^( In a= expression b= expression )
					{
					match(input,In,FOLLOW_In_in_expression3120); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3124);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3128);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new InNode(line, handler, currentScope, a, b); 
					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:481:6: ^( '||' a= expression b= expression )
					{
					match(input,Or,FOLLOW_Or_in_expression3139); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3143);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3147);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new OrNode(line, handler, currentScope, a, b); 
					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:482:6: ^( '&&' a= expression b= expression )
					{
					match(input,And,FOLLOW_And_in_expression3158); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3162);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3166);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new AndNode(line, handler, currentScope, a, b); 
					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:483:6: ^( '==' a= expression b= expression )
					{
					match(input,Equals,FOLLOW_Equals_in_expression3177); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3181);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3185);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new EqualsNode(line, handler, currentScope, a, b); 
					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:484:6: ^( '!=' a= expression b= expression )
					{
					match(input,NEquals,FOLLOW_NEquals_in_expression3196); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3200);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3204);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new NotEqualsNode(line,handler, currentScope, a, b); 
					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:485:6: ^( '>=' a= expression b= expression )
					{
					match(input,GTEquals,FOLLOW_GTEquals_in_expression3215); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3219);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3223);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new GTEqualsNode(line, handler, currentScope, a, b); 
					}
					break;
				case 8 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:486:6: ^( '<=' a= expression b= expression )
					{
					match(input,LTEquals,FOLLOW_LTEquals_in_expression3234); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3238);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3242);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new LTEqualsNode(line, handler, currentScope, a, b); 
					}
					break;
				case 9 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:487:6: ^( '>' a= expression b= expression )
					{
					match(input,GT,FOLLOW_GT_in_expression3253); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3257);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3261);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new GTNode(line, handler, currentScope, a, b); 
					}
					break;
				case 10 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:488:6: ^( '<' a= expression b= expression )
					{
					match(input,LT,FOLLOW_LT_in_expression3272); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3276);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3280);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new LTNode(line, handler, currentScope, a, b); 
					}
					break;
				case 11 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:489:6: ^( '+' a= expression b= expression )
					{
					match(input,Add,FOLLOW_Add_in_expression3291); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3295);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3299);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new AddNode(line, handler,currentScope,  a, b); 
					}
					break;
				case 12 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:490:6: ^( '-' a= expression b= expression )
					{
					match(input,Subtract,FOLLOW_Subtract_in_expression3310); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3314);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3318);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new SubNode(line, handler, currentScope, a, b); 
					}
					break;
				case 13 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:491:6: ^( '*' a= expression b= expression )
					{
					match(input,Multiply,FOLLOW_Multiply_in_expression3329); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3333);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3337);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new MulNode(line, handler, currentScope, a, b); 
					}
					break;
				case 14 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:492:6: ^( '/' a= expression b= expression )
					{
					match(input,Divide,FOLLOW_Divide_in_expression3348); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3352);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3356);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new DivNode(line, handler, currentScope, a, b); 
					}
					break;
				case 15 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:493:6: ^( '%' a= expression b= expression )
					{
					match(input,Modulus,FOLLOW_Modulus_in_expression3367); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3371);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3375);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new ModNode(line, handler, currentScope, a, b); 
					}
					break;
				case 16 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:494:6: ^( '^' a= expression b= expression )
					{
					match(input,Pow,FOLLOW_Pow_in_expression3386); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3390);
					a=expression();
					state._fsp--;

					pushFollow(FOLLOW_expression_in_expression3394);
					b=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new PowNode(line, handler, currentScope, a, b); 
					}
					break;
				case 17 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:495:6: ^( UNARY_MIN a= expression )
					{
					match(input,UNARY_MIN,FOLLOW_UNARY_MIN_in_expression3405); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3409);
					a=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new UnaryMinusNode(line, handler, currentScope, a); 
					}
					break;
				case 18 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:496:6: ^( NEGATE a= expression )
					{
					match(input,NEGATE,FOLLOW_NEGATE_in_expression3420); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_expression3424);
					a=expression();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new NegateNode(line, handler, currentScope, a); 
					}
					break;
				case 19 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:497:6: Number
					{
					Number116=(CommonTree)match(input,Number,FOLLOW_Number_in_expression3434); 
					 node = new AtomNode(line, handler, currentScope, new BigDecimal((Number116!=null?Number116.getText():null), MathContext.DECIMAL128)); 
					}
					break;
				case 20 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:498:6: Integer
					{
					Integer117=(CommonTree)match(input,Integer,FOLLOW_Integer_in_expression3443); 
					 node = AtomNode.getIntegerAtom(line, handler, currentScope, (Integer117!=null?Integer117.getText():null)); 
					}
					break;
				case 21 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:499:6: Long
					{
					Long118=(CommonTree)match(input,Long,FOLLOW_Long_in_expression3452); 
					 node = new AtomNode(line, handler, currentScope, java.lang.Long.parseLong((Long118!=null?Long118.getText():null))); 
					}
					break;
				case 22 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:500:6: Bool
					{
					Bool119=(CommonTree)match(input,Bool,FOLLOW_Bool_in_expression3461); 
					 node = new AtomNode(line, handler, currentScope, Boolean.parseBoolean((Bool119!=null?Bool119.getText():null))); 
					}
					break;
				case 23 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:501:6: Null
					{
					match(input,Null,FOLLOW_Null_in_expression3470); 
					 node = new AtomNode(line, handler, currentScope); 
					}
					break;
				case 24 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:502:6: sparsematrix
					{
					pushFollow(FOLLOW_sparsematrix_in_expression3479);
					sparsematrix120=sparsematrix();
					state._fsp--;

					 node = new AtomNode(line, handler, currentScope, new MatrixDim(sparsematrix120)); 
					}
					break;
				case 25 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:503:6: lookup
					{
					pushFollow(FOLLOW_lookup_in_expression3488);
					lookup121=lookup();
					state._fsp--;

					 node = lookup121; 
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "expression"



	// $ANTLR start "list"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:507:1: list returns [ReflexNode node] : ^( LIST ( exprList )? ) ;
	public final ReflexNode list() throws RecognitionException {
		ReflexNode node = null;


		java.util.List exprList122 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:512:3: ( ^( LIST ( exprList )? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:512:5: ^( LIST ( exprList )? )
			{
			match(input,LIST,FOLLOW_LIST_in_list3514); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:512:12: ( exprList )?
				int alt44=2;
				int LA44_0 = input.LA(1);
				if ( (LA44_0==EXP_LIST) ) {
					alt44=1;
				}
				switch (alt44) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:512:12: exprList
						{
						pushFollow(FOLLOW_exprList_in_list3516);
						exprList122=exprList();
						state._fsp--;

						}
						break;

				}

				match(input, Token.UP, null); 
			}

			 node = new ListNode(line, handler, currentScope, exprList122); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "list"



	// $ANTLR start "mapdef"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:515:1: mapdef returns [ReflexNode node] : ^( MAPDEF ( keyValList )? ) ;
	public final ReflexNode mapdef() throws RecognitionException {
		ReflexNode node = null;


		java.util.List keyValList123 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:520:3: ( ^( MAPDEF ( keyValList )? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:520:5: ^( MAPDEF ( keyValList )? )
			{
			match(input,MAPDEF,FOLLOW_MAPDEF_in_mapdef3543); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:520:14: ( keyValList )?
				int alt45=2;
				int LA45_0 = input.LA(1);
				if ( (LA45_0==KEYVAL_LIST) ) {
					alt45=1;
				}
				switch (alt45) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:520:14: keyValList
						{
						pushFollow(FOLLOW_keyValList_in_mapdef3545);
						keyValList123=keyValList();
						state._fsp--;

						}
						break;

				}

				match(input, Token.UP, null); 
			}

			 node = new MapNode(line, handler,currentScope,  keyValList123); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "mapdef"



	// $ANTLR start "keyValList"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:523:1: keyValList returns [java.util.List e] : ^( KEYVAL_LIST ( keyval )+ ) ;
	public final java.util.List keyValList() throws RecognitionException {
		java.util.List e = null;


		ReflexNode keyval124 =null;


		   e = new java.util.ArrayList();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:527:3: ( ^( KEYVAL_LIST ( keyval )+ ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:527:6: ^( KEYVAL_LIST ( keyval )+ )
			{
			match(input,KEYVAL_LIST,FOLLOW_KEYVAL_LIST_in_keyValList3573); 
			match(input, Token.DOWN, null); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:527:20: ( keyval )+
			int cnt46=0;
			loop46:
			while (true) {
				int alt46=2;
				int LA46_0 = input.LA(1);
				if ( (LA46_0==KEYVAL) ) {
					alt46=1;
				}

				switch (alt46) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:527:21: keyval
					{
					pushFollow(FOLLOW_keyval_in_keyValList3576);
					keyval124=keyval();
					state._fsp--;

					 e.add(keyval124); 
					}
					break;

				default :
					if ( cnt46 >= 1 ) break loop46;
					EarlyExitException eee = new EarlyExitException(46, input);
					throw eee;
				}
				cnt46++;
			}

			match(input, Token.UP, null); 

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return e;
	}
	// $ANTLR end "keyValList"



	// $ANTLR start "keyval"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:530:1: keyval returns [ReflexNode node] : ^( KEYVAL k= expression v= expression ) ;
	public final ReflexNode keyval() throws RecognitionException {
		ReflexNode node = null;


		ReflexNode k =null;
		ReflexNode v =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:535:3: ( ^( KEYVAL k= expression v= expression ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:535:6: ^( KEYVAL k= expression v= expression )
			{
			match(input,KEYVAL,FOLLOW_KEYVAL_in_keyval3605); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_expression_in_keyval3609);
			k=expression();
			state._fsp--;

			pushFollow(FOLLOW_expression_in_keyval3613);
			v=expression();
			state._fsp--;

			match(input, Token.UP, null); 

			 node = new KeyValNode(line, handler, currentScope, k, v); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "keyval"



	// $ANTLR start "lookup"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:538:1: lookup returns [ReflexNode node] : ( ^( LOOKUP functionCall (i= indexes )? ) | ^( LOOKUP PropertyPlaceholder ) | ^( RANGELOOKUP Identifier rangeindex ) | ^( RANGELOOKUP DottedIdentifier rangeindex ) | ^( LOOKUP list (i= indexes )? ) | ^( LOOKUP mapdef (i= indexes )? ) | ^( LOOKUP expression (i= indexes )? ) | ^( LOOKUP DottedIdentifier (x= indexes )? ) | ^( LOOKUP Identifier (x= indexes )? ) | ^( LOOKUP String (x= indexes )? ) | ^( LOOKUP QuotedString (x= indexes )? ) );
	public final ReflexNode lookup() throws RecognitionException {
		ReflexNode node = null;


		CommonTree PropertyPlaceholder126=null;
		CommonTree Identifier127=null;
		CommonTree DottedIdentifier129=null;
		CommonTree DottedIdentifier134=null;
		CommonTree Identifier135=null;
		CommonTree String136=null;
		CommonTree QuotedString137=null;
		java.util.List> i =null;
		java.util.List> x =null;
		ReflexNode functionCall125 =null;
		TreeRuleReturnScope rangeindex128 =null;
		TreeRuleReturnScope rangeindex130 =null;
		ReflexNode list131 =null;
		ReflexNode mapdef132 =null;
		ReflexNode expression133 =null;


		    CommonTree ahead = (CommonTree) input.LT(1);
		    int line = ahead.getToken().getLine();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:543:3: ( ^( LOOKUP functionCall (i= indexes )? ) | ^( LOOKUP PropertyPlaceholder ) | ^( RANGELOOKUP Identifier rangeindex ) | ^( RANGELOOKUP DottedIdentifier rangeindex ) | ^( LOOKUP list (i= indexes )? ) | ^( LOOKUP mapdef (i= indexes )? ) | ^( LOOKUP expression (i= indexes )? ) | ^( LOOKUP DottedIdentifier (x= indexes )? ) | ^( LOOKUP Identifier (x= indexes )? ) | ^( LOOKUP String (x= indexes )? ) | ^( LOOKUP QuotedString (x= indexes )? ) )
			int alt55=11;
			int LA55_0 = input.LA(1);
			if ( (LA55_0==LOOKUP) ) {
				int LA55_1 = input.LA(2);
				if ( (LA55_1==DOWN) ) {
					switch ( input.LA(3) ) {
					case PropertyPlaceholder:
						{
						alt55=2;
						}
						break;
					case DottedIdentifier:
						{
						alt55=8;
						}
						break;
					case Identifier:
						{
						alt55=9;
						}
						break;
					case String:
						{
						alt55=10;
						}
						break;
					case QuotedString:
						{
						alt55=11;
						}
						break;
					case FUNC_CALL:
					case KERNEL_CALL:
					case QUALIFIED_FUNC_CALL:
						{
						alt55=1;
						}
						break;
					case LIST:
						{
						alt55=5;
						}
						break;
					case MAPDEF:
						{
						alt55=6;
						}
						break;
					case Add:
					case And:
					case Bool:
					case Divide:
					case Equals:
					case GT:
					case GTEquals:
					case In:
					case Integer:
					case LOOKUP:
					case LT:
					case LTEquals:
					case Long:
					case Modulus:
					case Multiply:
					case NEGATE:
					case NEquals:
					case Null:
					case Number:
					case Or:
					case Pow:
					case RANGELOOKUP:
					case SPARSE:
					case Subtract:
					case TERNARY:
					case UNARY_MIN:
						{
						alt55=7;
						}
						break;
					default:
						int nvaeMark = input.mark();
						try {
							for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
								input.consume();
							}
							NoViableAltException nvae =
								new NoViableAltException("", 55, 3, input);
							throw nvae;
						} finally {
							input.rewind(nvaeMark);
						}
					}
				}

				else {
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 55, 1, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

			}
			else if ( (LA55_0==RANGELOOKUP) ) {
				int LA55_2 = input.LA(2);
				if ( (LA55_2==DOWN) ) {
					int LA55_4 = input.LA(3);
					if ( (LA55_4==Identifier) ) {
						alt55=3;
					}
					else if ( (LA55_4==DottedIdentifier) ) {
						alt55=4;
					}

					else {
						int nvaeMark = input.mark();
						try {
							for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
								input.consume();
							}
							NoViableAltException nvae =
								new NoViableAltException("", 55, 4, input);
							throw nvae;
						} finally {
							input.rewind(nvaeMark);
						}
					}

				}

				else {
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 55, 2, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

			}

			else {
				NoViableAltException nvae =
					new NoViableAltException("", 55, 0, input);
				throw nvae;
			}

			switch (alt55) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:543:6: ^( LOOKUP functionCall (i= indexes )? )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3640); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_functionCall_in_lookup3642);
					functionCall125=functionCall();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:543:29: (i= indexes )?
					int alt47=2;
					int LA47_0 = input.LA(1);
					if ( (LA47_0==INDEXES) ) {
						alt47=1;
					}
					switch (alt47) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:543:29: i= indexes
							{
							pushFollow(FOLLOW_indexes_in_lookup3646);
							i=indexes();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = i != null ? new LookupNode(line, handler, currentScope, functionCall125, i) : functionCall125; 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:544:6: ^( LOOKUP PropertyPlaceholder )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3658); 
					match(input, Token.DOWN, null); 
					PropertyPlaceholder126=(CommonTree)match(input,PropertyPlaceholder,FOLLOW_PropertyPlaceholder_in_lookup3660); 
					match(input, Token.UP, null); 

					 node = new PropertyPlaceholderNode(line, handler, currentScope, (PropertyPlaceholder126!=null?PropertyPlaceholder126.getText():null)); 
					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:545:6: ^( RANGELOOKUP Identifier rangeindex )
					{
					match(input,RANGELOOKUP,FOLLOW_RANGELOOKUP_in_lookup3672); 
					match(input, Token.DOWN, null); 
					Identifier127=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_lookup3674); 
					pushFollow(FOLLOW_rangeindex_in_lookup3676);
					rangeindex128=rangeindex();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new RangeLookupNode(line, handler, currentScope, new IdentifierNode(line, handler, currentScope, (Identifier127!=null?Identifier127.getText():null), namespaceStack.asPrefix()), (rangeindex128!=null?((ReflexTreeWalker.rangeindex_return)rangeindex128).ste:null), (rangeindex128!=null?((ReflexTreeWalker.rangeindex_return)rangeindex128).ed:null)); 
					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:546:6: ^( RANGELOOKUP DottedIdentifier rangeindex )
					{
					match(input,RANGELOOKUP,FOLLOW_RANGELOOKUP_in_lookup3687); 
					match(input, Token.DOWN, null); 
					DottedIdentifier129=(CommonTree)match(input,DottedIdentifier,FOLLOW_DottedIdentifier_in_lookup3689); 
					pushFollow(FOLLOW_rangeindex_in_lookup3691);
					rangeindex130=rangeindex();
					state._fsp--;

					match(input, Token.UP, null); 

					 node = new RangeLookupNode(line, handler, currentScope, new IdentifierNode(line, handler, currentScope, (DottedIdentifier129!=null?DottedIdentifier129.getText():null), namespaceStack.asPrefix()), (rangeindex130!=null?((ReflexTreeWalker.rangeindex_return)rangeindex130).ste:null), (rangeindex130!=null?((ReflexTreeWalker.rangeindex_return)rangeindex130).ed:null)); 
					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:547:6: ^( LOOKUP list (i= indexes )? )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3702); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_list_in_lookup3704);
					list131=list();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:547:21: (i= indexes )?
					int alt48=2;
					int LA48_0 = input.LA(1);
					if ( (LA48_0==INDEXES) ) {
						alt48=1;
					}
					switch (alt48) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:547:21: i= indexes
							{
							pushFollow(FOLLOW_indexes_in_lookup3708);
							i=indexes();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					  node = i != null ? new LookupNode(line, handler, currentScope, list131, i) : list131; 
					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:548:6: ^( LOOKUP mapdef (i= indexes )? )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3720); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_mapdef_in_lookup3722);
					mapdef132=mapdef();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:548:23: (i= indexes )?
					int alt49=2;
					int LA49_0 = input.LA(1);
					if ( (LA49_0==INDEXES) ) {
						alt49=1;
					}
					switch (alt49) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:548:23: i= indexes
							{
							pushFollow(FOLLOW_indexes_in_lookup3726);
							i=indexes();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = i != null ? new LookupNode(line, handler, currentScope, mapdef132, i) : mapdef132; 
					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:549:6: ^( LOOKUP expression (i= indexes )? )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3738); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_expression_in_lookup3740);
					expression133=expression();
					state._fsp--;

					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:549:27: (i= indexes )?
					int alt50=2;
					int LA50_0 = input.LA(1);
					if ( (LA50_0==INDEXES) ) {
						alt50=1;
					}
					switch (alt50) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:549:27: i= indexes
							{
							pushFollow(FOLLOW_indexes_in_lookup3744);
							i=indexes();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 

					 node = i != null ? new LookupNode(line, handler, currentScope, expression133, i) : expression133; 
					}
					break;
				case 8 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:550:6: ^( LOOKUP DottedIdentifier (x= indexes )? )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3756); 
					match(input, Token.DOWN, null); 
					DottedIdentifier134=(CommonTree)match(input,DottedIdentifier,FOLLOW_DottedIdentifier_in_lookup3758); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:550:33: (x= indexes )?
					int alt51=2;
					int LA51_0 = input.LA(1);
					if ( (LA51_0==INDEXES) ) {
						alt51=1;
					}
					switch (alt51) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:550:33: x= indexes
							{
							pushFollow(FOLLOW_indexes_in_lookup3762);
							x=indexes();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 


					        node = (x != null)
					          ? new LookupNode(line, handler, currentScope, new IdentifierNode(line, handler, currentScope, (DottedIdentifier134!=null?DottedIdentifier134.getText():null), namespaceStack.asPrefix()), x)
					          : new IdentifierNode(line, handler, currentScope, (DottedIdentifier134!=null?DottedIdentifier134.getText():null), namespaceStack.asPrefix());
					      
					}
					break;
				case 9 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:556:6: ^( LOOKUP Identifier (x= indexes )? )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3780); 
					match(input, Token.DOWN, null); 
					Identifier135=(CommonTree)match(input,Identifier,FOLLOW_Identifier_in_lookup3782); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:556:27: (x= indexes )?
					int alt52=2;
					int LA52_0 = input.LA(1);
					if ( (LA52_0==INDEXES) ) {
						alt52=1;
					}
					switch (alt52) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:556:27: x= indexes
							{
							pushFollow(FOLLOW_indexes_in_lookup3786);
							x=indexes();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 


					        node = (x != null)
					          ? new LookupNode(line, handler, currentScope, new IdentifierNode(line, handler, currentScope, (Identifier135!=null?Identifier135.getText():null), namespaceStack.asPrefix()), x)
					          : new IdentifierNode(line, handler, currentScope, (Identifier135!=null?Identifier135.getText():null), namespaceStack.asPrefix());
					      
					}
					break;
				case 10 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:562:6: ^( LOOKUP String (x= indexes )? )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3804); 
					match(input, Token.DOWN, null); 
					String136=(CommonTree)match(input,String,FOLLOW_String_in_lookup3806); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:562:23: (x= indexes )?
					int alt53=2;
					int LA53_0 = input.LA(1);
					if ( (LA53_0==INDEXES) ) {
						alt53=1;
					}
					switch (alt53) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:562:23: x= indexes
							{
							pushFollow(FOLLOW_indexes_in_lookup3810);
							x=indexes();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 


					      node = (x != null)
					        ? new LookupNode(line, handler, currentScope, new AtomNode(line, handler, currentScope, (String136!=null?String136.getText():null)), x)
					        : AtomNode.getStringAtom(line, handler,currentScope,  (String136!=null?String136.getText():null));
					    
					}
					break;
				case 11 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:568:5: ^( LOOKUP QuotedString (x= indexes )? )
					{
					match(input,LOOKUP,FOLLOW_LOOKUP_in_lookup3825); 
					match(input, Token.DOWN, null); 
					QuotedString137=(CommonTree)match(input,QuotedString,FOLLOW_QuotedString_in_lookup3827); 
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:568:28: (x= indexes )?
					int alt54=2;
					int LA54_0 = input.LA(1);
					if ( (LA54_0==INDEXES) ) {
						alt54=1;
					}
					switch (alt54) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:568:28: x= indexes
							{
							pushFollow(FOLLOW_indexes_in_lookup3831);
							x=indexes();
							state._fsp--;

							}
							break;

					}

					match(input, Token.UP, null); 


					      node = (x != null)
					        ? new LookupNode(line, handler, currentScope, new QuotedStringNode(line, handler, currentScope, (QuotedString137!=null?QuotedString137.getText():null)), x)
					        : new QuotedStringNode(line, handler, currentScope, (QuotedString137!=null?QuotedString137.getText():null));
					    
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return node;
	}
	// $ANTLR end "lookup"


	public static class rangeindex_return extends TreeRuleReturnScope {
		public ReflexNode ste;
		public ReflexNode ed;
	};


	// $ANTLR start "rangeindex"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:576:1: rangeindex returns [ReflexNode ste, ReflexNode ed] : ^( RANGEINDEX lhs= expression rhs= expression ) ;
	public final ReflexTreeWalker.rangeindex_return rangeindex() throws RecognitionException {
		ReflexTreeWalker.rangeindex_return retval = new ReflexTreeWalker.rangeindex_return();
		retval.start = input.LT(1);

		ReflexNode lhs =null;
		ReflexNode rhs =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:577:3: ( ^( RANGEINDEX lhs= expression rhs= expression ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:577:3: ^( RANGEINDEX lhs= expression rhs= expression )
			{
			match(input,RANGEINDEX,FOLLOW_RANGEINDEX_in_rangeindex3855); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_expression_in_rangeindex3859);
			lhs=expression();
			state._fsp--;

			pushFollow(FOLLOW_expression_in_rangeindex3863);
			rhs=expression();
			state._fsp--;

			match(input, Token.UP, null); 

			 retval.ste = lhs; retval.ed = rhs; 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "rangeindex"



	// $ANTLR start "indexes"
	// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:580:1: indexes returns [java.util.List> e] : ^( INDEXES ( exprList )+ ) ;
	public final java.util.List> indexes() throws RecognitionException {
		java.util.List> e = null;


		java.util.List exprList138 =null;


		  e = new ArrayList>();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:584:3: ( ^( INDEXES ( exprList )+ ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:584:6: ^( INDEXES ( exprList )+ )
			{
			match(input,INDEXES,FOLLOW_INDEXES_in_indexes3888); 
			match(input, Token.DOWN, null); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:584:16: ( exprList )+
			int cnt56=0;
			loop56:
			while (true) {
				int alt56=2;
				int LA56_0 = input.LA(1);
				if ( (LA56_0==EXP_LIST) ) {
					alt56=1;
				}

				switch (alt56) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/Reflex/src/main/antlr3/reflex/ReflexTreeWalker.g:584:17: exprList
					{
					pushFollow(FOLLOW_exprList_in_indexes3891);
					exprList138=exprList();
					state._fsp--;

					 e.add(exprList138); 
					}
					break;

				default :
					if ( cnt56 >= 1 ) break loop56;
					EarlyExitException eee = new EarlyExitException(56, input);
					throw eee;
				}
				cnt56++;
			}

			match(input, Token.UP, null); 

			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
		return e;
	}
	// $ANTLR end "indexes"

	// Delegated rules


	protected DFA35 dfa35 = new DFA35(this);
	static final String DFA35_eotS =
		"\127\uffff";
	static final String DFA35_eofS =
		"\127\uffff";
	static final String DFA35_minS =
		"\1\110\1\2\2\uffff\1\6\122\uffff";
	static final String DFA35_maxS =
		"\1\u00a4\1\2\2\uffff\1\u00d8\122\uffff";
	static final String DFA35_acceptS =
		"\2\uffff\1\123\1\124\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\7\1\10\1\11\1\12"+
		"\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\1\30"+
		"\1\31\1\32\1\33\1\34\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46"+
		"\1\47\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63\1\64"+
		"\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\74\1\75\1\76\1\77\1\100\1\101\1"+
		"\102\1\103\1\104\1\105\1\106\1\107\1\110\1\111\1\112\1\113\1\114\1\115"+
		"\1\116\1\117\1\120\1\121\1\122";
	static final String DFA35_specialS =
		"\127\uffff}>";
	static final String[] DFA35_transitionS = {
			"\1\1\41\uffff\1\2\71\uffff\1\3",
			"\1\4",
			"",
			"",
			"\1\21\1\uffff\1\20\1\54\1\uffff\1\27\1\uffff\1\103\1\104\1\uffff\1\105"+
			"\1\37\1\40\12\uffff\1\120\1\12\1\uffff\1\114\1\uffff\1\111\1\60\1\36"+
			"\5\uffff\1\53\2\uffff\1\42\1\41\2\uffff\1\126\1\55\1\71\5\uffff\1\23"+
			"\10\uffff\1\44\6\uffff\1\52\1\16\1\17\1\uffff\1\63\1\76\2\uffff\1\122"+
			"\1\123\1\70\1\11\1\10\1\13\10\uffff\1\5\6\uffff\1\50\1\51\1\72\1\74\4"+
			"\uffff\1\34\4\uffff\1\117\3\uffff\1\75\3\uffff\1\15\1\uffff\1\113\1\62"+
			"\1\64\1\66\1\47\4\uffff\1\121\21\uffff\1\6\1\uffff\1\56\2\uffff\1\14"+
			"\1\7\3\uffff\1\67\7\uffff\1\31\1\32\1\115\1\46\1\102\1\65\1\uffff\1\116"+
			"\5\uffff\1\110\1\uffff\1\30\1\112\1\35\1\uffff\1\125\1\25\1\24\3\uffff"+
			"\1\57\1\106\2\uffff\1\22\1\124\1\uffff\1\43\1\61\1\uffff\1\33\1\uffff"+
			"\1\26\1\uffff\1\73\1\uffff\1\100\1\77\1\uffff\1\101\1\45\1\107",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			""
	};

	static final short[] DFA35_eot = DFA.unpackEncodedString(DFA35_eotS);
	static final short[] DFA35_eof = DFA.unpackEncodedString(DFA35_eofS);
	static final char[] DFA35_min = DFA.unpackEncodedStringToUnsignedChars(DFA35_minS);
	static final char[] DFA35_max = DFA.unpackEncodedStringToUnsignedChars(DFA35_maxS);
	static final short[] DFA35_accept = DFA.unpackEncodedString(DFA35_acceptS);
	static final short[] DFA35_special = DFA.unpackEncodedString(DFA35_specialS);
	static final short[][] DFA35_transition;

	static {
		int numStates = DFA35_transitionS.length;
		DFA35_transition = new short[numStates][];
		for (int i=0; i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy