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

com.incapture.rapgen.TParser Maven / Gradle / Ivy

// $ANTLR 3.5.2 /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g 2016-04-14 13:13:57

    package com.incapture.rapgen;


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

import org.antlr.runtime.tree.*;


@SuppressWarnings("all")
public class TParser extends AbstractTParser {
	public static final String[] tokenNames = new String[] {
		"", "", "", "", "ADDRESSABLE", "API", "AT", "BANG", 
		"BEAN", "BOOLTYPE", "BYTEARRAYTYPE", "CACHEABLE", "CLOSESQUARE", "COLUMN", 
		"COMMA", "COMMENT", "CRUDTYPED", "DATA", "DATETYPE", "DEPRECATED", "DOC", 
		"DOT", "DOUBLETYPE", "DYNENT", "ENTITLE", "EQUAL", "EXTENDS", "FALSE", 
		"G_THAN", "ID", "INCLUDE", "INDEXED", "INT", "INTTYPE", "LBRAC", "LISTTYPE", 
		"LONGCTYPE", "LONGTYPE", "LPAREN", "L_THAN", "MAPTYPE", "MINUS", "NEW", 
		"OBJECTTYPE", "OPENSQUARE", "PACKAGE", "PACKAGENAME", "PRIVATE", "PUBLIC", 
		"RBRAC", "REGULARENTITLE", "RPAREN", "SCHEME", "SDKNAME", "SEMI", "SETTYPE", 
		"SQUOTE", "STORABLE", "STORAGE_PATH", "STREAMING", "STRING", "STRINGTYPE", 
		"TRUE", "TYPED", "VOIDTYPE", "WS", "APIENTRY", "APISEC", "CLASSTYPE", 
		"COMPLEX", "CRUDINFO", "CRUDINFOENTRY", "CRUDPACKAGEANNOTATION", "CRUDTYPEDEF", 
		"ENTITLEASPECT", "ENUM", "EXPR", "FIELD_CONSTRUCTOR", "FNNAME", "INDEX_COMPONENT", 
		"INDEX_NAME", "INNERA", "INNERC", "INNERT", "MAIN", "MEMBER", "MEMBERS", 
		"MINVERSIONDEF", "NAME", "PARAM", "PARAMS", "PRIVATEVIS", "PUBLICVIS", 
		"RAW", "RETTYPE", "SCRIPT", "SDKDEF", "STATEMENT", "STORABLE_ENCODING", 
		"STORABLE_PREFIX", "STORABLE_REPO_NAME", "STORABLE_SEPARATOR", "STORABLE_TTL_DAYS", 
		"STORAGE_PATH_ADDER", "STREAMINGASPECT", "TYPE", "TYPEASPECT", "TYPEDEF", 
		"TYPEFIELDS", "TYPEMEMBER", "VERSIONDEF", "VISIBILITY"
	};
	public static final int EOF=-1;
	public static final int ADDRESSABLE=4;
	public static final int API=5;
	public static final int AT=6;
	public static final int BANG=7;
	public static final int BEAN=8;
	public static final int BOOLTYPE=9;
	public static final int BYTEARRAYTYPE=10;
	public static final int CACHEABLE=11;
	public static final int CLOSESQUARE=12;
	public static final int COLUMN=13;
	public static final int COMMA=14;
	public static final int COMMENT=15;
	public static final int CRUDTYPED=16;
	public static final int DATA=17;
	public static final int DATETYPE=18;
	public static final int DEPRECATED=19;
	public static final int DOC=20;
	public static final int DOT=21;
	public static final int DOUBLETYPE=22;
	public static final int DYNENT=23;
	public static final int ENTITLE=24;
	public static final int EQUAL=25;
	public static final int EXTENDS=26;
	public static final int FALSE=27;
	public static final int G_THAN=28;
	public static final int ID=29;
	public static final int INCLUDE=30;
	public static final int INDEXED=31;
	public static final int INT=32;
	public static final int INTTYPE=33;
	public static final int LBRAC=34;
	public static final int LISTTYPE=35;
	public static final int LONGCTYPE=36;
	public static final int LONGTYPE=37;
	public static final int LPAREN=38;
	public static final int L_THAN=39;
	public static final int MAPTYPE=40;
	public static final int MINUS=41;
	public static final int NEW=42;
	public static final int OBJECTTYPE=43;
	public static final int OPENSQUARE=44;
	public static final int PACKAGE=45;
	public static final int PACKAGENAME=46;
	public static final int PRIVATE=47;
	public static final int PUBLIC=48;
	public static final int RBRAC=49;
	public static final int REGULARENTITLE=50;
	public static final int RPAREN=51;
	public static final int SCHEME=52;
	public static final int SDKNAME=53;
	public static final int SEMI=54;
	public static final int SETTYPE=55;
	public static final int SQUOTE=56;
	public static final int STORABLE=57;
	public static final int STORAGE_PATH=58;
	public static final int STREAMING=59;
	public static final int STRING=60;
	public static final int STRINGTYPE=61;
	public static final int TRUE=62;
	public static final int TYPED=63;
	public static final int VOIDTYPE=64;
	public static final int WS=65;
	public static final int APIENTRY=66;
	public static final int APISEC=67;
	public static final int CLASSTYPE=68;
	public static final int COMPLEX=69;
	public static final int CRUDINFO=70;
	public static final int CRUDINFOENTRY=71;
	public static final int CRUDPACKAGEANNOTATION=72;
	public static final int CRUDTYPEDEF=73;
	public static final int ENTITLEASPECT=74;
	public static final int ENUM=75;
	public static final int EXPR=76;
	public static final int FIELD_CONSTRUCTOR=77;
	public static final int FNNAME=78;
	public static final int INDEX_COMPONENT=79;
	public static final int INDEX_NAME=80;
	public static final int INNERA=81;
	public static final int INNERC=82;
	public static final int INNERT=83;
	public static final int MAIN=84;
	public static final int MEMBER=85;
	public static final int MEMBERS=86;
	public static final int MINVERSIONDEF=87;
	public static final int NAME=88;
	public static final int PARAM=89;
	public static final int PARAMS=90;
	public static final int PRIVATEVIS=91;
	public static final int PUBLICVIS=92;
	public static final int RAW=93;
	public static final int RETTYPE=94;
	public static final int SCRIPT=95;
	public static final int SDKDEF=96;
	public static final int STATEMENT=97;
	public static final int STORABLE_ENCODING=98;
	public static final int STORABLE_PREFIX=99;
	public static final int STORABLE_REPO_NAME=100;
	public static final int STORABLE_SEPARATOR=101;
	public static final int STORABLE_TTL_DAYS=102;
	public static final int STORAGE_PATH_ADDER=103;
	public static final int STREAMINGASPECT=104;
	public static final int TYPE=105;
	public static final int TYPEASPECT=106;
	public static final int TYPEDEF=107;
	public static final int TYPEFIELDS=108;
	public static final int TYPEMEMBER=109;
	public static final int VERSIONDEF=110;
	public static final int VISIBILITY=111;

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

	// delegators


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

	protected TreeAdaptor adaptor = new CommonTreeAdaptor();

	public void setTreeAdaptor(TreeAdaptor adaptor) {
		this.adaptor = adaptor;
	}
	public TreeAdaptor getTreeAdaptor() {
		return adaptor;
	}
	@Override public String[] getTokenNames() { return TParser.tokenNames; }
	@Override public String getGrammarFileName() { return "/Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g"; }


	public static class hmxdef_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "hmxdef"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:1: hmxdef : ( sdkExpr )? versionExpr minVerExpr ( innerExpr )* -> ^( MAIN ( sdkExpr )? versionExpr minVerExpr ( innerExpr )* ) ;
	public final TParser.hmxdef_return hmxdef() throws RecognitionException {
		TParser.hmxdef_return retval = new TParser.hmxdef_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope sdkExpr1 =null;
		ParserRuleReturnScope versionExpr2 =null;
		ParserRuleReturnScope minVerExpr3 =null;
		ParserRuleReturnScope innerExpr4 =null;

		RewriteRuleSubtreeStream stream_versionExpr=new RewriteRuleSubtreeStream(adaptor,"rule versionExpr");
		RewriteRuleSubtreeStream stream_minVerExpr=new RewriteRuleSubtreeStream(adaptor,"rule minVerExpr");
		RewriteRuleSubtreeStream stream_sdkExpr=new RewriteRuleSubtreeStream(adaptor,"rule sdkExpr");
		RewriteRuleSubtreeStream stream_innerExpr=new RewriteRuleSubtreeStream(adaptor,"rule innerExpr");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:13: ( ( sdkExpr )? versionExpr minVerExpr ( innerExpr )* -> ^( MAIN ( sdkExpr )? versionExpr minVerExpr ( innerExpr )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:15: ( sdkExpr )? versionExpr minVerExpr ( innerExpr )*
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:15: ( sdkExpr )?
			int alt1=2;
			int LA1_0 = input.LA(1);
			if ( (LA1_0==SDKNAME) ) {
				alt1=1;
			}
			switch (alt1) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:15: sdkExpr
					{
					pushFollow(FOLLOW_sdkExpr_in_hmxdef418);
					sdkExpr1=sdkExpr();
					state._fsp--;

					stream_sdkExpr.add(sdkExpr1.getTree());
					}
					break;

			}

			pushFollow(FOLLOW_versionExpr_in_hmxdef421);
			versionExpr2=versionExpr();
			state._fsp--;

			stream_versionExpr.add(versionExpr2.getTree());
			pushFollow(FOLLOW_minVerExpr_in_hmxdef423);
			minVerExpr3=minVerExpr();
			state._fsp--;

			stream_minVerExpr.add(minVerExpr3.getTree());
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:47: ( innerExpr )*
			loop2:
			while (true) {
				int alt2=2;
				int LA2_0 = input.LA(1);
				if ( (LA2_0==DOC) ) {
					alt2=1;
				}

				switch (alt2) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:47: innerExpr
					{
					pushFollow(FOLLOW_innerExpr_in_hmxdef425);
					innerExpr4=innerExpr();
					state._fsp--;

					stream_innerExpr.add(innerExpr4.getTree());
					}
					break;

				default :
					break loop2;
				}
			}

			// AST REWRITE
			// elements: innerExpr, versionExpr, sdkExpr, minVerExpr
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 68:58: -> ^( MAIN ( sdkExpr )? versionExpr minVerExpr ( innerExpr )* )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:61: ^( MAIN ( sdkExpr )? versionExpr minVerExpr ( innerExpr )* )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MAIN, "MAIN"), root_1);
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:68: ( sdkExpr )?
				if ( stream_sdkExpr.hasNext() ) {
					adaptor.addChild(root_1, stream_sdkExpr.nextTree());
				}
				stream_sdkExpr.reset();

				adaptor.addChild(root_1, stream_versionExpr.nextTree());
				adaptor.addChild(root_1, stream_minVerExpr.nextTree());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:68:100: ( innerExpr )*
				while ( stream_innerExpr.hasNext() ) {
					adaptor.addChild(root_1, stream_innerExpr.nextTree());
				}
				stream_innerExpr.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "hmxdef"


	public static class innerExpr_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "innerExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:70:1: innerExpr : ( typeExpr -> ^( INNERT typeExpr ) | crudTypeExpr -> ^( INNERT ^( TYPEDEF DOC[\"[Type doc]\"] ID[$crudTypeExpr.name] ^( TYPEASPECT PACKAGENAME[\"rapture.common\"] ) ^( TYPEFIELDS ^( TYPEMEMBER ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) ) ^( NAME ID[\"Hello\"] ) ^( FIELD_CONSTRUCTOR ) ) ) ) ) ^( INNERC crudTypeExpr ) ^( INNERA ^( APISEC DOC[\"[Hello]\"] ID[$crudTypeExpr.name] ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"get\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( RAW BOOLTYPE[\"Boolean\"] ) ) ^( FNNAME ID[\"delete\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"put\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) ) ) ^( FNNAME ID[\"getChildren\"] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) ) ) ) ) ) | apiExpr -> ^( INNERA apiExpr ) );
	public final TParser.innerExpr_return innerExpr() throws RecognitionException {
		TParser.innerExpr_return retval = new TParser.innerExpr_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		ParserRuleReturnScope typeExpr5 =null;
		ParserRuleReturnScope crudTypeExpr6 =null;
		ParserRuleReturnScope apiExpr7 =null;

		RewriteRuleSubtreeStream stream_typeExpr=new RewriteRuleSubtreeStream(adaptor,"rule typeExpr");
		RewriteRuleSubtreeStream stream_crudTypeExpr=new RewriteRuleSubtreeStream(adaptor,"rule crudTypeExpr");
		RewriteRuleSubtreeStream stream_apiExpr=new RewriteRuleSubtreeStream(adaptor,"rule apiExpr");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:70:13: ( typeExpr -> ^( INNERT typeExpr ) | crudTypeExpr -> ^( INNERT ^( TYPEDEF DOC[\"[Type doc]\"] ID[$crudTypeExpr.name] ^( TYPEASPECT PACKAGENAME[\"rapture.common\"] ) ^( TYPEFIELDS ^( TYPEMEMBER ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) ) ^( NAME ID[\"Hello\"] ) ^( FIELD_CONSTRUCTOR ) ) ) ) ) ^( INNERC crudTypeExpr ) ^( INNERA ^( APISEC DOC[\"[Hello]\"] ID[$crudTypeExpr.name] ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"get\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( RAW BOOLTYPE[\"Boolean\"] ) ) ^( FNNAME ID[\"delete\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"put\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) ) ) ^( FNNAME ID[\"getChildren\"] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) ) ) ) ) ) | apiExpr -> ^( INNERA apiExpr ) )
			int alt3=3;
			alt3 = dfa3.predict(input);
			switch (alt3) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:70:15: typeExpr
					{
					pushFollow(FOLLOW_typeExpr_in_innerExpr452);
					typeExpr5=typeExpr();
					state._fsp--;

					stream_typeExpr.add(typeExpr5.getTree());
					// AST REWRITE
					// elements: typeExpr
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 70:24: -> ^( INNERT typeExpr )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:70:27: ^( INNERT typeExpr )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INNERT, "INNERT"), root_1);
						adaptor.addChild(root_1, stream_typeExpr.nextTree());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:71:17: crudTypeExpr
					{
					pushFollow(FOLLOW_crudTypeExpr_in_innerExpr478);
					crudTypeExpr6=crudTypeExpr();
					state._fsp--;

					stream_crudTypeExpr.add(crudTypeExpr6.getTree());
					// AST REWRITE
					// elements: crudTypeExpr
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 71:30: -> ^( INNERT ^( TYPEDEF DOC[\"[Type doc]\"] ID[$crudTypeExpr.name] ^( TYPEASPECT PACKAGENAME[\"rapture.common\"] ) ^( TYPEFIELDS ^( TYPEMEMBER ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) ) ^( NAME ID[\"Hello\"] ) ^( FIELD_CONSTRUCTOR ) ) ) ) ) ^( INNERC crudTypeExpr ) ^( INNERA ^( APISEC DOC[\"[Hello]\"] ID[$crudTypeExpr.name] ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"get\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( RAW BOOLTYPE[\"Boolean\"] ) ) ^( FNNAME ID[\"delete\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"put\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) ) ) ^( FNNAME ID[\"getChildren\"] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) ) ) ) ) )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:72:21: ^( INNERT ^( TYPEDEF DOC[\"[Type doc]\"] ID[$crudTypeExpr.name] ^( TYPEASPECT PACKAGENAME[\"rapture.common\"] ) ^( TYPEFIELDS ^( TYPEMEMBER ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) ) ^( NAME ID[\"Hello\"] ) ^( FIELD_CONSTRUCTOR ) ) ) ) )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INNERT, "INNERT"), root_1);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:73:23: ^( TYPEDEF DOC[\"[Type doc]\"] ID[$crudTypeExpr.name] ^( TYPEASPECT PACKAGENAME[\"rapture.common\"] ) ^( TYPEFIELDS ^( TYPEMEMBER ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) ) ^( NAME ID[\"Hello\"] ) ^( FIELD_CONSTRUCTOR ) ) ) )
						{
						CommonTree root_2 = (CommonTree)adaptor.nil();
						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEDEF, "TYPEDEF"), root_2);
						adaptor.addChild(root_2, (CommonTree)adaptor.create(DOC, "[Type doc]"));
						adaptor.addChild(root_2, (CommonTree)adaptor.create(ID, (crudTypeExpr6!=null?((TParser.crudTypeExpr_return)crudTypeExpr6).name:null)));
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:76:23: ^( TYPEASPECT PACKAGENAME[\"rapture.common\"] )
						{
						CommonTree root_3 = (CommonTree)adaptor.nil();
						root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEASPECT, "TYPEASPECT"), root_3);
						adaptor.addChild(root_3, (CommonTree)adaptor.create(PACKAGENAME, "rapture.common"));
						adaptor.addChild(root_2, root_3);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:77:23: ^( TYPEFIELDS ^( TYPEMEMBER ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) ) ^( NAME ID[\"Hello\"] ) ^( FIELD_CONSTRUCTOR ) ) )
						{
						CommonTree root_3 = (CommonTree)adaptor.nil();
						root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEFIELDS, "TYPEFIELDS"), root_3);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:78:27: ^( TYPEMEMBER ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) ) ^( NAME ID[\"Hello\"] ) ^( FIELD_CONSTRUCTOR ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEMEMBER, "TYPEMEMBER"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:79:31: ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE, "TYPE"), root_5);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:79:38: ^( RAW STRINGTYPE[\"Test\"] )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_6);
						adaptor.addChild(root_6, (CommonTree)adaptor.create(STRINGTYPE, "Test"));
						adaptor.addChild(root_5, root_6);
						}

						adaptor.addChild(root_4, root_5);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:80:31: ^( NAME ID[\"Hello\"] )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NAME, "NAME"), root_5);
						adaptor.addChild(root_5, (CommonTree)adaptor.create(ID, "Hello"));
						adaptor.addChild(root_4, root_5);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:81:31: ^( FIELD_CONSTRUCTOR )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FIELD_CONSTRUCTOR, "FIELD_CONSTRUCTOR"), root_5);
						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						adaptor.addChild(root_2, root_3);
						}

						adaptor.addChild(root_1, root_2);
						}

						adaptor.addChild(root_0, root_1);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:86:20: ^( INNERC crudTypeExpr )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INNERC, "INNERC"), root_1);
						adaptor.addChild(root_1, stream_crudTypeExpr.nextTree());
						adaptor.addChild(root_0, root_1);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:87:21: ^( INNERA ^( APISEC DOC[\"[Hello]\"] ID[$crudTypeExpr.name] ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"get\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( RAW BOOLTYPE[\"Boolean\"] ) ) ^( FNNAME ID[\"delete\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"put\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) ) ) ^( FNNAME ID[\"getChildren\"] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) ) ) ) ) )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INNERA, "INNERA"), root_1);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:88:25: ^( APISEC DOC[\"[Hello]\"] ID[$crudTypeExpr.name] ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"get\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( RAW BOOLTYPE[\"Boolean\"] ) ) ^( FNNAME ID[\"delete\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"put\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) ) ) ^( FNNAME ID[\"getChildren\"] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) ) ) ) )
						{
						CommonTree root_2 = (CommonTree)adaptor.nil();
						root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APISEC, "APISEC"), root_2);
						adaptor.addChild(root_2, (CommonTree)adaptor.create(DOC, "[Hello]"));
						adaptor.addChild(root_2, (CommonTree)adaptor.create(ID, (crudTypeExpr6!=null?((TParser.crudTypeExpr_return)crudTypeExpr6).name:null)));
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:91:30: ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"get\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) )
						{
						CommonTree root_3 = (CommonTree)adaptor.nil();
						root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APIENTRY, "APIENTRY"), root_3);
						adaptor.addChild(root_3, (CommonTree)adaptor.create(DOC, "[Some doc]"));
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:93:34: ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENTITLEASPECT, "ENTITLEASPECT"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(REGULARENTITLE, "/admin/main"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:94:34: ^( VISIBILITY PUBLICVIS )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VISIBILITY, "VISIBILITY"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(PUBLICVIS, "PUBLICVIS"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:95:34: ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RETTYPE, "RETTYPE"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:95:44: ^( COMPLEX ID[$crudTypeExpr.name] )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(COMPLEX, "COMPLEX"), root_5);
						adaptor.addChild(root_5, (CommonTree)adaptor.create(ID, (crudTypeExpr6!=null?((TParser.crudTypeExpr_return)crudTypeExpr6).name:null)));
						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:96:34: ^( FNNAME ID[\"get\" + $crudTypeExpr.name] )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FNNAME, "FNNAME"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(ID, "get" + (crudTypeExpr6!=null?((TParser.crudTypeExpr_return)crudTypeExpr6).name:null)));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:97:34: ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAMS, "PARAMS"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:98:38: ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAM, "PARAM"), root_5);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:99:42: ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE, "TYPE"), root_6);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:99:49: ^( RAW STRINGTYPE[\"String\"] )
						{
						CommonTree root_7 = (CommonTree)adaptor.nil();
						root_7 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_7);
						adaptor.addChild(root_7, (CommonTree)adaptor.create(STRINGTYPE, "String"));
						adaptor.addChild(root_6, root_7);
						}

						adaptor.addChild(root_5, root_6);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:100:42: ^( NAME ID[\"uri\"] )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NAME, "NAME"), root_6);
						adaptor.addChild(root_6, (CommonTree)adaptor.create(ID, "uri"));
						adaptor.addChild(root_5, root_6);
						}

						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						adaptor.addChild(root_2, root_3);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:104:30: ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( RAW BOOLTYPE[\"Boolean\"] ) ) ^( FNNAME ID[\"delete\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) )
						{
						CommonTree root_3 = (CommonTree)adaptor.nil();
						root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APIENTRY, "APIENTRY"), root_3);
						adaptor.addChild(root_3, (CommonTree)adaptor.create(DOC, "[Some doc]"));
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:106:34: ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENTITLEASPECT, "ENTITLEASPECT"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(REGULARENTITLE, "/admin/main"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:107:34: ^( VISIBILITY PUBLICVIS )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VISIBILITY, "VISIBILITY"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(PUBLICVIS, "PUBLICVIS"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:108:34: ^( RETTYPE ^( RAW BOOLTYPE[\"Boolean\"] ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RETTYPE, "RETTYPE"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:108:44: ^( RAW BOOLTYPE[\"Boolean\"] )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_5);
						adaptor.addChild(root_5, (CommonTree)adaptor.create(BOOLTYPE, "Boolean"));
						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:109:34: ^( FNNAME ID[\"delete\" + $crudTypeExpr.name] )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FNNAME, "FNNAME"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(ID, "delete" + (crudTypeExpr6!=null?((TParser.crudTypeExpr_return)crudTypeExpr6).name:null)));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:110:34: ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAMS, "PARAMS"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:111:38: ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAM, "PARAM"), root_5);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:112:42: ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE, "TYPE"), root_6);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:112:49: ^( RAW STRINGTYPE[\"String\"] )
						{
						CommonTree root_7 = (CommonTree)adaptor.nil();
						root_7 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_7);
						adaptor.addChild(root_7, (CommonTree)adaptor.create(STRINGTYPE, "String"));
						adaptor.addChild(root_6, root_7);
						}

						adaptor.addChild(root_5, root_6);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:113:42: ^( NAME ID[\"uri\"] )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NAME, "NAME"), root_6);
						adaptor.addChild(root_6, (CommonTree)adaptor.create(ID, "uri"));
						adaptor.addChild(root_5, root_6);
						}

						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						adaptor.addChild(root_2, root_3);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:117:30: ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"put\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) ) ) )
						{
						CommonTree root_3 = (CommonTree)adaptor.nil();
						root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APIENTRY, "APIENTRY"), root_3);
						adaptor.addChild(root_3, (CommonTree)adaptor.create(DOC, "[Some doc]"));
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:119:34: ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENTITLEASPECT, "ENTITLEASPECT"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(REGULARENTITLE, "/admin/main"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:120:34: ^( VISIBILITY PUBLICVIS )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VISIBILITY, "VISIBILITY"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(PUBLICVIS, "PUBLICVIS"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:121:34: ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RETTYPE, "RETTYPE"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:121:44: ^( COMPLEX ID[$crudTypeExpr.name] )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(COMPLEX, "COMPLEX"), root_5);
						adaptor.addChild(root_5, (CommonTree)adaptor.create(ID, (crudTypeExpr6!=null?((TParser.crudTypeExpr_return)crudTypeExpr6).name:null)));
						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:122:34: ^( FNNAME ID[\"put\" + $crudTypeExpr.name] )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FNNAME, "FNNAME"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(ID, "put" + (crudTypeExpr6!=null?((TParser.crudTypeExpr_return)crudTypeExpr6).name:null)));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:123:34: ^( PARAMS ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAMS, "PARAMS"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:124:38: ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAM, "PARAM"), root_5);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:125:42: ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE, "TYPE"), root_6);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:125:49: ^( COMPLEX ID[$crudTypeExpr.name] )
						{
						CommonTree root_7 = (CommonTree)adaptor.nil();
						root_7 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(COMPLEX, "COMPLEX"), root_7);
						adaptor.addChild(root_7, (CommonTree)adaptor.create(ID, (crudTypeExpr6!=null?((TParser.crudTypeExpr_return)crudTypeExpr6).name:null)));
						adaptor.addChild(root_6, root_7);
						}

						adaptor.addChild(root_5, root_6);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:126:42: ^( NAME ID[\"content\"] )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NAME, "NAME"), root_6);
						adaptor.addChild(root_6, (CommonTree)adaptor.create(ID, "content"));
						adaptor.addChild(root_5, root_6);
						}

						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						adaptor.addChild(root_2, root_3);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:130:30: ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) ) ) ^( FNNAME ID[\"getChildren\"] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) ) ) )
						{
						CommonTree root_3 = (CommonTree)adaptor.nil();
						root_3 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APIENTRY, "APIENTRY"), root_3);
						adaptor.addChild(root_3, (CommonTree)adaptor.create(DOC, "[Some doc]"));
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:132:34: ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENTITLEASPECT, "ENTITLEASPECT"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(REGULARENTITLE, "/admin/main"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:133:34: ^( VISIBILITY PUBLICVIS )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VISIBILITY, "VISIBILITY"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(PUBLICVIS, "PUBLICVIS"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:134:34: ^( RETTYPE ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RETTYPE, "RETTYPE"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:134:44: ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(LISTTYPE, "LISTTYPE"), root_5);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:134:55: ^( COMPLEX ID[\"RaptureFolderInfo\"] )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(COMPLEX, "COMPLEX"), root_6);
						adaptor.addChild(root_6, (CommonTree)adaptor.create(ID, "RaptureFolderInfo"));
						adaptor.addChild(root_5, root_6);
						}

						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:135:34: ^( FNNAME ID[\"getChildren\"] )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FNNAME, "FNNAME"), root_4);
						adaptor.addChild(root_4, (CommonTree)adaptor.create(ID, "getChildren"));
						adaptor.addChild(root_3, root_4);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:136:34: ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) ) )
						{
						CommonTree root_4 = (CommonTree)adaptor.nil();
						root_4 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAMS, "PARAMS"), root_4);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:137:38: ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) )
						{
						CommonTree root_5 = (CommonTree)adaptor.nil();
						root_5 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAM, "PARAM"), root_5);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:138:42: ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE, "TYPE"), root_6);
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:138:49: ^( RAW STRINGTYPE[\"String\"] )
						{
						CommonTree root_7 = (CommonTree)adaptor.nil();
						root_7 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_7);
						adaptor.addChild(root_7, (CommonTree)adaptor.create(STRINGTYPE, "String"));
						adaptor.addChild(root_6, root_7);
						}

						adaptor.addChild(root_5, root_6);
						}

						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:139:42: ^( NAME ID[\"prefix\"] )
						{
						CommonTree root_6 = (CommonTree)adaptor.nil();
						root_6 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NAME, "NAME"), root_6);
						adaptor.addChild(root_6, (CommonTree)adaptor.create(ID, "prefix"));
						adaptor.addChild(root_5, root_6);
						}

						adaptor.addChild(root_4, root_5);
						}

						adaptor.addChild(root_3, root_4);
						}

						adaptor.addChild(root_2, root_3);
						}

						adaptor.addChild(root_1, root_2);
						}

						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:146:17: apiExpr
					{
					pushFollow(FOLLOW_apiExpr_in_innerExpr3200);
					apiExpr7=apiExpr();
					state._fsp--;

					stream_apiExpr.add(apiExpr7.getTree());
					// AST REWRITE
					// elements: apiExpr
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 146:25: -> ^( INNERA apiExpr )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:146:28: ^( INNERA apiExpr )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INNERA, "INNERA"), root_1);
						adaptor.addChild(root_1, stream_apiExpr.nextTree());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "innerExpr"


	public static class sdkExpr_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "sdkExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:148:1: sdkExpr : SDKNAME LBRAC name= ID RBRAC -> ^( SDKDEF $name) ;
	public final TParser.sdkExpr_return sdkExpr() throws RecognitionException {
		TParser.sdkExpr_return retval = new TParser.sdkExpr_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token name=null;
		Token SDKNAME8=null;
		Token LBRAC9=null;
		Token RBRAC10=null;

		CommonTree name_tree=null;
		CommonTree SDKNAME8_tree=null;
		CommonTree LBRAC9_tree=null;
		CommonTree RBRAC10_tree=null;
		RewriteRuleTokenStream stream_LBRAC=new RewriteRuleTokenStream(adaptor,"token LBRAC");
		RewriteRuleTokenStream stream_SDKNAME=new RewriteRuleTokenStream(adaptor,"token SDKNAME");
		RewriteRuleTokenStream stream_RBRAC=new RewriteRuleTokenStream(adaptor,"token RBRAC");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:148:13: ( SDKNAME LBRAC name= ID RBRAC -> ^( SDKDEF $name) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:149:5: SDKNAME LBRAC name= ID RBRAC
			{
			SDKNAME8=(Token)match(input,SDKNAME,FOLLOW_SDKNAME_in_sdkExpr3224);  
			stream_SDKNAME.add(SDKNAME8);

			LBRAC9=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_sdkExpr3226);  
			stream_LBRAC.add(LBRAC9);

			name=(Token)match(input,ID,FOLLOW_ID_in_sdkExpr3230);  
			stream_ID.add(name);

			RBRAC10=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_sdkExpr3232);  
			stream_RBRAC.add(RBRAC10);

			// AST REWRITE
			// elements: name
			// token labels: name
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_name=new RewriteRuleTokenStream(adaptor,"token name",name);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 149:33: -> ^( SDKDEF $name)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:149:36: ^( SDKDEF $name)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(SDKDEF, "SDKDEF"), root_1);
				adaptor.addChild(root_1, stream_name.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "sdkExpr"


	public static class versionExpr_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "versionExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:151:1: versionExpr : ID LBRAC major= INT DOT minor= INT ( DOT micro= INT )? RBRAC -> ^( VERSIONDEF $major $minor ( $micro)? ) ;
	public final TParser.versionExpr_return versionExpr() throws RecognitionException {
		TParser.versionExpr_return retval = new TParser.versionExpr_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token major=null;
		Token minor=null;
		Token micro=null;
		Token ID11=null;
		Token LBRAC12=null;
		Token DOT13=null;
		Token DOT14=null;
		Token RBRAC15=null;

		CommonTree major_tree=null;
		CommonTree minor_tree=null;
		CommonTree micro_tree=null;
		CommonTree ID11_tree=null;
		CommonTree LBRAC12_tree=null;
		CommonTree DOT13_tree=null;
		CommonTree DOT14_tree=null;
		CommonTree RBRAC15_tree=null;
		RewriteRuleTokenStream stream_LBRAC=new RewriteRuleTokenStream(adaptor,"token LBRAC");
		RewriteRuleTokenStream stream_RBRAC=new RewriteRuleTokenStream(adaptor,"token RBRAC");
		RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleTokenStream stream_INT=new RewriteRuleTokenStream(adaptor,"token INT");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:152:5: ( ID LBRAC major= INT DOT minor= INT ( DOT micro= INT )? RBRAC -> ^( VERSIONDEF $major $minor ( $micro)? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:153:5: ID LBRAC major= INT DOT minor= INT ( DOT micro= INT )? RBRAC
			{
			ID11=(Token)match(input,ID,FOLLOW_ID_in_versionExpr3261);  
			stream_ID.add(ID11);

			 
			        if (!"version".equals((ID11!=null?ID11.getText():null))) {
			            throw new IllegalArgumentException(
			                String.format("Error: Expecting 'version' but found '%s' at %s:%s", (ID11!=null?ID11.getText():null), (ID11!=null?ID11.getLine():0), ID11.getCharPositionInLine()));
			        }
			    
			LBRAC12=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_versionExpr3269);  
			stream_LBRAC.add(LBRAC12);

			major=(Token)match(input,INT,FOLLOW_INT_in_versionExpr3273);  
			stream_INT.add(major);

			DOT13=(Token)match(input,DOT,FOLLOW_DOT_in_versionExpr3275);  
			stream_DOT.add(DOT13);

			minor=(Token)match(input,INT,FOLLOW_INT_in_versionExpr3279);  
			stream_INT.add(minor);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:159:34: ( DOT micro= INT )?
			int alt4=2;
			int LA4_0 = input.LA(1);
			if ( (LA4_0==DOT) ) {
				alt4=1;
			}
			switch (alt4) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:159:36: DOT micro= INT
					{
					DOT14=(Token)match(input,DOT,FOLLOW_DOT_in_versionExpr3282);  
					stream_DOT.add(DOT14);

					micro=(Token)match(input,INT,FOLLOW_INT_in_versionExpr3286);  
					stream_INT.add(micro);

					}
					break;

			}

			RBRAC15=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_versionExpr3290);  
			stream_RBRAC.add(RBRAC15);

			// AST REWRITE
			// elements: minor, micro, major
			// token labels: minor, major, micro
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_minor=new RewriteRuleTokenStream(adaptor,"token minor",minor);
			RewriteRuleTokenStream stream_major=new RewriteRuleTokenStream(adaptor,"token major",major);
			RewriteRuleTokenStream stream_micro=new RewriteRuleTokenStream(adaptor,"token micro",micro);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 159:58: -> ^( VERSIONDEF $major $minor ( $micro)? )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:159:61: ^( VERSIONDEF $major $minor ( $micro)? )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VERSIONDEF, "VERSIONDEF"), root_1);
				adaptor.addChild(root_1, stream_major.nextNode());
				adaptor.addChild(root_1, stream_minor.nextNode());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:159:87: ( $micro)?
				if ( stream_micro.hasNext() ) {
					adaptor.addChild(root_1, stream_micro.nextNode());
				}
				stream_micro.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "versionExpr"


	public static class minVerExpr_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "minVerExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:162:1: minVerExpr : ID LBRAC major= INT DOT minor= INT ( DOT micro= INT )? RBRAC -> ^( MINVERSIONDEF $major $minor ( $micro)? ) ;
	public final TParser.minVerExpr_return minVerExpr() throws RecognitionException {
		TParser.minVerExpr_return retval = new TParser.minVerExpr_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token major=null;
		Token minor=null;
		Token micro=null;
		Token ID16=null;
		Token LBRAC17=null;
		Token DOT18=null;
		Token DOT19=null;
		Token RBRAC20=null;

		CommonTree major_tree=null;
		CommonTree minor_tree=null;
		CommonTree micro_tree=null;
		CommonTree ID16_tree=null;
		CommonTree LBRAC17_tree=null;
		CommonTree DOT18_tree=null;
		CommonTree DOT19_tree=null;
		CommonTree RBRAC20_tree=null;
		RewriteRuleTokenStream stream_LBRAC=new RewriteRuleTokenStream(adaptor,"token LBRAC");
		RewriteRuleTokenStream stream_RBRAC=new RewriteRuleTokenStream(adaptor,"token RBRAC");
		RewriteRuleTokenStream stream_DOT=new RewriteRuleTokenStream(adaptor,"token DOT");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleTokenStream stream_INT=new RewriteRuleTokenStream(adaptor,"token INT");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:163:5: ( ID LBRAC major= INT DOT minor= INT ( DOT micro= INT )? RBRAC -> ^( MINVERSIONDEF $major $minor ( $micro)? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:164:5: ID LBRAC major= INT DOT minor= INT ( DOT micro= INT )? RBRAC
			{
			ID16=(Token)match(input,ID,FOLLOW_ID_in_minVerExpr3329);  
			stream_ID.add(ID16);

			 
			        if (!"minVer".equals((ID16!=null?ID16.getText():null))) {
			            throw new IllegalArgumentException(
			                String.format("Error: Expecting 'version' but found '%s' at %s:%s", (ID16!=null?ID16.getText():null), (ID16!=null?ID16.getLine():0), ID16.getCharPositionInLine()));
			        }
			    
			LBRAC17=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_minVerExpr3337);  
			stream_LBRAC.add(LBRAC17);

			major=(Token)match(input,INT,FOLLOW_INT_in_minVerExpr3341);  
			stream_INT.add(major);

			DOT18=(Token)match(input,DOT,FOLLOW_DOT_in_minVerExpr3343);  
			stream_DOT.add(DOT18);

			minor=(Token)match(input,INT,FOLLOW_INT_in_minVerExpr3347);  
			stream_INT.add(minor);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:170:34: ( DOT micro= INT )?
			int alt5=2;
			int LA5_0 = input.LA(1);
			if ( (LA5_0==DOT) ) {
				alt5=1;
			}
			switch (alt5) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:170:36: DOT micro= INT
					{
					DOT19=(Token)match(input,DOT,FOLLOW_DOT_in_minVerExpr3350);  
					stream_DOT.add(DOT19);

					micro=(Token)match(input,INT,FOLLOW_INT_in_minVerExpr3354);  
					stream_INT.add(micro);

					}
					break;

			}

			RBRAC20=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_minVerExpr3358);  
			stream_RBRAC.add(RBRAC20);

			// AST REWRITE
			// elements: major, micro, minor
			// token labels: major, minor, micro
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_major=new RewriteRuleTokenStream(adaptor,"token major",major);
			RewriteRuleTokenStream stream_minor=new RewriteRuleTokenStream(adaptor,"token minor",minor);
			RewriteRuleTokenStream stream_micro=new RewriteRuleTokenStream(adaptor,"token micro",micro);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 170:58: -> ^( MINVERSIONDEF $major $minor ( $micro)? )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:170:61: ^( MINVERSIONDEF $major $minor ( $micro)? )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MINVERSIONDEF, "MINVERSIONDEF"), root_1);
				adaptor.addChild(root_1, stream_major.nextNode());
				adaptor.addChild(root_1, stream_minor.nextNode());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:170:90: ( $micro)?
				if ( stream_micro.hasNext() ) {
					adaptor.addChild(root_1, stream_micro.nextNode());
				}
				stream_micro.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "minVerExpr"


	public static class dynList_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "dynList"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:173:1: dynList : ( DYNENT ! ID ( LBRAC ! ID RBRAC !)? )* ;
	public final TParser.dynList_return dynList() throws RecognitionException {
		TParser.dynList_return retval = new TParser.dynList_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token DYNENT21=null;
		Token ID22=null;
		Token LBRAC23=null;
		Token ID24=null;
		Token RBRAC25=null;

		CommonTree DYNENT21_tree=null;
		CommonTree ID22_tree=null;
		CommonTree LBRAC23_tree=null;
		CommonTree ID24_tree=null;
		CommonTree RBRAC25_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:173:9: ( ( DYNENT ! ID ( LBRAC ! ID RBRAC !)? )* )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:173:11: ( DYNENT ! ID ( LBRAC ! ID RBRAC !)? )*
			{
			root_0 = (CommonTree)adaptor.nil();


			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:173:11: ( DYNENT ! ID ( LBRAC ! ID RBRAC !)? )*
			loop7:
			while (true) {
				int alt7=2;
				int LA7_0 = input.LA(1);
				if ( (LA7_0==DYNENT) ) {
					alt7=1;
				}

				switch (alt7) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:173:12: DYNENT ! ID ( LBRAC ! ID RBRAC !)?
					{
					DYNENT21=(Token)match(input,DYNENT,FOLLOW_DYNENT_in_dynList3390); 
					ID22=(Token)match(input,ID,FOLLOW_ID_in_dynList3393); 
					ID22_tree = (CommonTree)adaptor.create(ID22);
					adaptor.addChild(root_0, ID22_tree);

					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:173:23: ( LBRAC ! ID RBRAC !)?
					int alt6=2;
					int LA6_0 = input.LA(1);
					if ( (LA6_0==LBRAC) ) {
						alt6=1;
					}
					switch (alt6) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:173:24: LBRAC ! ID RBRAC !
							{
							LBRAC23=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_dynList3396); 
							ID24=(Token)match(input,ID,FOLLOW_ID_in_dynList3399); 
							ID24_tree = (CommonTree)adaptor.create(ID24);
							adaptor.addChild(root_0, ID24_tree);

							RBRAC25=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_dynList3401); 
							}
							break;

					}

					}
					break;

				default :
					break loop7;
				}
			}

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "dynList"


	public static class regList_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "regList"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:175:1: regList : ( REGULARENTITLE )+ ;
	public final TParser.regList_return regList() throws RecognitionException {
		TParser.regList_return retval = new TParser.regList_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token REGULARENTITLE26=null;

		CommonTree REGULARENTITLE26_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:175:9: ( ( REGULARENTITLE )+ )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:175:11: ( REGULARENTITLE )+
			{
			root_0 = (CommonTree)adaptor.nil();


			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:175:11: ( REGULARENTITLE )+
			int cnt8=0;
			loop8:
			while (true) {
				int alt8=2;
				int LA8_0 = input.LA(1);
				if ( (LA8_0==REGULARENTITLE) ) {
					alt8=1;
				}

				switch (alt8) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:175:11: REGULARENTITLE
					{
					REGULARENTITLE26=(Token)match(input,REGULARENTITLE,FOLLOW_REGULARENTITLE_in_regList3414); 
					REGULARENTITLE26_tree = (CommonTree)adaptor.create(REGULARENTITLE26);
					adaptor.addChild(root_0, REGULARENTITLE26_tree);

					}
					break;

				default :
					if ( cnt8 >= 1 ) break loop8;
					EarlyExitException eee = new EarlyExitException(8, input);
					throw eee;
				}
				cnt8++;
			}

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "regList"


	public static class entitleAspect_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "entitleAspect"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:177:1: entitleAspect : ENTITLE EQUAL a= regList b= dynList -> ^( ENTITLEASPECT $a ( $b)* ) ;
	public final TParser.entitleAspect_return entitleAspect() throws RecognitionException {
		TParser.entitleAspect_return retval = new TParser.entitleAspect_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token ENTITLE27=null;
		Token EQUAL28=null;
		ParserRuleReturnScope a =null;
		ParserRuleReturnScope b =null;

		CommonTree ENTITLE27_tree=null;
		CommonTree EQUAL28_tree=null;
		RewriteRuleTokenStream stream_ENTITLE=new RewriteRuleTokenStream(adaptor,"token ENTITLE");
		RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
		RewriteRuleSubtreeStream stream_dynList=new RewriteRuleSubtreeStream(adaptor,"rule dynList");
		RewriteRuleSubtreeStream stream_regList=new RewriteRuleSubtreeStream(adaptor,"rule regList");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:177:15: ( ENTITLE EQUAL a= regList b= dynList -> ^( ENTITLEASPECT $a ( $b)* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:177:17: ENTITLE EQUAL a= regList b= dynList
			{
			ENTITLE27=(Token)match(input,ENTITLE,FOLLOW_ENTITLE_in_entitleAspect3423);  
			stream_ENTITLE.add(ENTITLE27);

			EQUAL28=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_entitleAspect3425);  
			stream_EQUAL.add(EQUAL28);

			pushFollow(FOLLOW_regList_in_entitleAspect3429);
			a=regList();
			state._fsp--;

			stream_regList.add(a.getTree());
			pushFollow(FOLLOW_dynList_in_entitleAspect3433);
			b=dynList();
			state._fsp--;

			stream_dynList.add(b.getTree());
			// AST REWRITE
			// elements: a, b
			// token labels: 
			// rule labels: a, b, retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_a=new RewriteRuleSubtreeStream(adaptor,"rule a",a!=null?a.getTree():null);
			RewriteRuleSubtreeStream stream_b=new RewriteRuleSubtreeStream(adaptor,"rule b",b!=null?b.getTree():null);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 177:51: -> ^( ENTITLEASPECT $a ( $b)* )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:177:54: ^( ENTITLEASPECT $a ( $b)* )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(ENTITLEASPECT, "ENTITLEASPECT"), root_1);
				adaptor.addChild(root_1, stream_a.nextTree());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:177:74: ( $b)*
				while ( stream_b.hasNext() ) {
					adaptor.addChild(root_1, stream_b.nextTree());
				}
				stream_b.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "entitleAspect"


	public static class deprecatedAspect_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "deprecatedAspect"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:179:1: deprecatedAspect : AT ! DEPRECATED EQUAL ! ( STRING | ID ) ;
	public final TParser.deprecatedAspect_return deprecatedAspect() throws RecognitionException {
		TParser.deprecatedAspect_return retval = new TParser.deprecatedAspect_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token AT29=null;
		Token DEPRECATED30=null;
		Token EQUAL31=null;
		Token set32=null;

		CommonTree AT29_tree=null;
		CommonTree DEPRECATED30_tree=null;
		CommonTree EQUAL31_tree=null;
		CommonTree set32_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:179:18: ( AT ! DEPRECATED EQUAL ! ( STRING | ID ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:179:20: AT ! DEPRECATED EQUAL ! ( STRING | ID )
			{
			root_0 = (CommonTree)adaptor.nil();


			AT29=(Token)match(input,AT,FOLLOW_AT_in_deprecatedAspect3454); 
			DEPRECATED30=(Token)match(input,DEPRECATED,FOLLOW_DEPRECATED_in_deprecatedAspect3457); 
			DEPRECATED30_tree = (CommonTree)adaptor.create(DEPRECATED30);
			adaptor.addChild(root_0, DEPRECATED30_tree);

			EQUAL31=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_deprecatedAspect3459); 
			set32=input.LT(1);
			if ( input.LA(1)==ID||input.LA(1)==STRING ) {
				input.consume();
				adaptor.addChild(root_0, (CommonTree)adaptor.create(set32));
				state.errorRecovery=false;
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				throw mse;
			}
			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "deprecatedAspect"


	public static class crudTypeExpr_return extends ParserRuleReturnScope {
		public String name;
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "crudTypeExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:181:1: crudTypeExpr returns [String name] : doc= DOC ( typeAnnotation )* ( crudPackageAnnotation )? CRUDTYPED n= ID crudTypeInfo typeFields -> ^( CRUDTYPEDEF $doc ( typeAnnotation )* ( crudPackageAnnotation )? $n crudTypeInfo typeFields ) ;
	public final TParser.crudTypeExpr_return crudTypeExpr() throws RecognitionException {
		TParser.crudTypeExpr_return retval = new TParser.crudTypeExpr_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token doc=null;
		Token n=null;
		Token CRUDTYPED35=null;
		ParserRuleReturnScope typeAnnotation33 =null;
		ParserRuleReturnScope crudPackageAnnotation34 =null;
		ParserRuleReturnScope crudTypeInfo36 =null;
		ParserRuleReturnScope typeFields37 =null;

		CommonTree doc_tree=null;
		CommonTree n_tree=null;
		CommonTree CRUDTYPED35_tree=null;
		RewriteRuleTokenStream stream_CRUDTYPED=new RewriteRuleTokenStream(adaptor,"token CRUDTYPED");
		RewriteRuleTokenStream stream_DOC=new RewriteRuleTokenStream(adaptor,"token DOC");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleSubtreeStream stream_typeFields=new RewriteRuleSubtreeStream(adaptor,"rule typeFields");
		RewriteRuleSubtreeStream stream_crudPackageAnnotation=new RewriteRuleSubtreeStream(adaptor,"rule crudPackageAnnotation");
		RewriteRuleSubtreeStream stream_crudTypeInfo=new RewriteRuleSubtreeStream(adaptor,"rule crudTypeInfo");
		RewriteRuleSubtreeStream stream_typeAnnotation=new RewriteRuleSubtreeStream(adaptor,"rule typeAnnotation");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:181:34: (doc= DOC ( typeAnnotation )* ( crudPackageAnnotation )? CRUDTYPED n= ID crudTypeInfo typeFields -> ^( CRUDTYPEDEF $doc ( typeAnnotation )* ( crudPackageAnnotation )? $n crudTypeInfo typeFields ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:182:9: doc= DOC ( typeAnnotation )* ( crudPackageAnnotation )? CRUDTYPED n= ID crudTypeInfo typeFields
			{
			doc=(Token)match(input,DOC,FOLLOW_DOC_in_crudTypeExpr3489);  
			stream_DOC.add(doc);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:182:17: ( typeAnnotation )*
			loop9:
			while (true) {
				int alt9=2;
				int LA9_0 = input.LA(1);
				if ( (LA9_0==AT) ) {
					alt9=1;
				}

				switch (alt9) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:182:17: typeAnnotation
					{
					pushFollow(FOLLOW_typeAnnotation_in_crudTypeExpr3491);
					typeAnnotation33=typeAnnotation();
					state._fsp--;

					stream_typeAnnotation.add(typeAnnotation33.getTree());
					}
					break;

				default :
					break loop9;
				}
			}

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:182:33: ( crudPackageAnnotation )?
			int alt10=2;
			int LA10_0 = input.LA(1);
			if ( (LA10_0==PACKAGE) ) {
				alt10=1;
			}
			switch (alt10) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:182:33: crudPackageAnnotation
					{
					pushFollow(FOLLOW_crudPackageAnnotation_in_crudTypeExpr3494);
					crudPackageAnnotation34=crudPackageAnnotation();
					state._fsp--;

					stream_crudPackageAnnotation.add(crudPackageAnnotation34.getTree());
					}
					break;

			}

			CRUDTYPED35=(Token)match(input,CRUDTYPED,FOLLOW_CRUDTYPED_in_crudTypeExpr3497);  
			stream_CRUDTYPED.add(CRUDTYPED35);

			n=(Token)match(input,ID,FOLLOW_ID_in_crudTypeExpr3501);  
			stream_ID.add(n);

			 retval.name = (n!=null?n.getText():null); 
			pushFollow(FOLLOW_crudTypeInfo_in_crudTypeExpr3505);
			crudTypeInfo36=crudTypeInfo();
			state._fsp--;

			stream_crudTypeInfo.add(crudTypeInfo36.getTree());
			pushFollow(FOLLOW_typeFields_in_crudTypeExpr3507);
			typeFields37=typeFields();
			state._fsp--;

			stream_typeFields.add(typeFields37.getTree());
			// AST REWRITE
			// elements: crudPackageAnnotation, doc, typeFields, crudTypeInfo, n, typeAnnotation
			// token labels: doc, n
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_doc=new RewriteRuleTokenStream(adaptor,"token doc",doc);
			RewriteRuleTokenStream stream_n=new RewriteRuleTokenStream(adaptor,"token n",n);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 182:116: -> ^( CRUDTYPEDEF $doc ( typeAnnotation )* ( crudPackageAnnotation )? $n crudTypeInfo typeFields )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:182:119: ^( CRUDTYPEDEF $doc ( typeAnnotation )* ( crudPackageAnnotation )? $n crudTypeInfo typeFields )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CRUDTYPEDEF, "CRUDTYPEDEF"), root_1);
				adaptor.addChild(root_1, stream_doc.nextNode());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:182:138: ( typeAnnotation )*
				while ( stream_typeAnnotation.hasNext() ) {
					adaptor.addChild(root_1, stream_typeAnnotation.nextTree());
				}
				stream_typeAnnotation.reset();

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:182:154: ( crudPackageAnnotation )?
				if ( stream_crudPackageAnnotation.hasNext() ) {
					adaptor.addChild(root_1, stream_crudPackageAnnotation.nextTree());
				}
				stream_crudPackageAnnotation.reset();

				adaptor.addChild(root_1, stream_n.nextNode());
				adaptor.addChild(root_1, stream_crudTypeInfo.nextTree());
				adaptor.addChild(root_1, stream_typeFields.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "crudTypeExpr"


	public static class crudTypeInfo_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "crudTypeInfo"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:184:1: crudTypeInfo : LBRAC ( crudDirective )* RBRAC -> ^( CRUDINFO ( crudDirective )* ) ;
	public final TParser.crudTypeInfo_return crudTypeInfo() throws RecognitionException {
		TParser.crudTypeInfo_return retval = new TParser.crudTypeInfo_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token LBRAC38=null;
		Token RBRAC40=null;
		ParserRuleReturnScope crudDirective39 =null;

		CommonTree LBRAC38_tree=null;
		CommonTree RBRAC40_tree=null;
		RewriteRuleTokenStream stream_LBRAC=new RewriteRuleTokenStream(adaptor,"token LBRAC");
		RewriteRuleTokenStream stream_RBRAC=new RewriteRuleTokenStream(adaptor,"token RBRAC");
		RewriteRuleSubtreeStream stream_crudDirective=new RewriteRuleSubtreeStream(adaptor,"rule crudDirective");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:184:14: ( LBRAC ( crudDirective )* RBRAC -> ^( CRUDINFO ( crudDirective )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:185:9: LBRAC ( crudDirective )* RBRAC
			{
			LBRAC38=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_crudTypeInfo3547);  
			stream_LBRAC.add(LBRAC38);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:185:15: ( crudDirective )*
			loop11:
			while (true) {
				int alt11=2;
				int LA11_0 = input.LA(1);
				if ( (LA11_0==ID) ) {
					alt11=1;
				}

				switch (alt11) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:185:15: crudDirective
					{
					pushFollow(FOLLOW_crudDirective_in_crudTypeInfo3549);
					crudDirective39=crudDirective();
					state._fsp--;

					stream_crudDirective.add(crudDirective39.getTree());
					}
					break;

				default :
					break loop11;
				}
			}

			RBRAC40=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_crudTypeInfo3552);  
			stream_RBRAC.add(RBRAC40);

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

			root_0 = (CommonTree)adaptor.nil();
			// 185:36: -> ^( CRUDINFO ( crudDirective )* )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:185:39: ^( CRUDINFO ( crudDirective )* )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CRUDINFO, "CRUDINFO"), root_1);
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:185:50: ( crudDirective )*
				while ( stream_crudDirective.hasNext() ) {
					adaptor.addChild(root_1, stream_crudDirective.nextTree());
				}
				stream_crudDirective.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "crudTypeInfo"


	public static class crudDirective_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "crudDirective"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:187:1: crudDirective : n= ID -> ^( CRUDINFOENTRY $n) ;
	public final TParser.crudDirective_return crudDirective() throws RecognitionException {
		TParser.crudDirective_return retval = new TParser.crudDirective_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token n=null;

		CommonTree n_tree=null;
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:187:15: (n= ID -> ^( CRUDINFOENTRY $n) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:188:9: n= ID
			{
			n=(Token)match(input,ID,FOLLOW_ID_in_crudDirective3587);  
			stream_ID.add(n);

			// AST REWRITE
			// elements: n
			// token labels: n
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_n=new RewriteRuleTokenStream(adaptor,"token n",n);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 188:14: -> ^( CRUDINFOENTRY $n)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:188:17: ^( CRUDINFOENTRY $n)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CRUDINFOENTRY, "CRUDINFOENTRY"), root_1);
				adaptor.addChild(root_1, stream_n.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "crudDirective"


	public static class vardefs_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "vardefs"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:190:1: vardefs : LPAREN ( vardef )+ RPAREN -> ^( MEMBERS ( vardef )+ ) ;
	public final TParser.vardefs_return vardefs() throws RecognitionException {
		TParser.vardefs_return retval = new TParser.vardefs_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token LPAREN41=null;
		Token RPAREN43=null;
		ParserRuleReturnScope vardef42 =null;

		CommonTree LPAREN41_tree=null;
		CommonTree RPAREN43_tree=null;
		RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
		RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
		RewriteRuleSubtreeStream stream_vardef=new RewriteRuleSubtreeStream(adaptor,"rule vardef");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:190:13: ( LPAREN ( vardef )+ RPAREN -> ^( MEMBERS ( vardef )+ ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:191:9: LPAREN ( vardef )+ RPAREN
			{
			LPAREN41=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_vardefs3630);  
			stream_LPAREN.add(LPAREN41);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:191:16: ( vardef )+
			int cnt12=0;
			loop12:
			while (true) {
				int alt12=2;
				int LA12_0 = input.LA(1);
				if ( ((LA12_0 >= BOOLTYPE && LA12_0 <= BYTEARRAYTYPE)||LA12_0==DATETYPE||LA12_0==DOUBLETYPE||LA12_0==ID||LA12_0==INTTYPE||(LA12_0 >= LISTTYPE && LA12_0 <= LONGTYPE)||LA12_0==MAPTYPE||LA12_0==OBJECTTYPE||LA12_0==SETTYPE||LA12_0==STRINGTYPE||LA12_0==VOIDTYPE||LA12_0==CLASSTYPE) ) {
					alt12=1;
				}

				switch (alt12) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:191:16: vardef
					{
					pushFollow(FOLLOW_vardef_in_vardefs3632);
					vardef42=vardef();
					state._fsp--;

					stream_vardef.add(vardef42.getTree());
					}
					break;

				default :
					if ( cnt12 >= 1 ) break loop12;
					EarlyExitException eee = new EarlyExitException(12, input);
					throw eee;
				}
				cnt12++;
			}

			RPAREN43=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_vardefs3635);  
			stream_RPAREN.add(RPAREN43);

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

			root_0 = (CommonTree)adaptor.nil();
			// 191:31: -> ^( MEMBERS ( vardef )+ )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:191:34: ^( MEMBERS ( vardef )+ )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MEMBERS, "MEMBERS"), root_1);
				if ( !(stream_vardef.hasNext()) ) {
					throw new RewriteEarlyExitException();
				}
				while ( stream_vardef.hasNext() ) {
					adaptor.addChild(root_1, stream_vardef.nextTree());
				}
				stream_vardef.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "vardefs"


	public static class vardef_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "vardef"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:193:1: vardef : vartype n= ID SEMI -> ^( MEMBER vartype $n) ;
	public final TParser.vardef_return vardef() throws RecognitionException {
		TParser.vardef_return retval = new TParser.vardef_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token n=null;
		Token SEMI45=null;
		ParserRuleReturnScope vartype44 =null;

		CommonTree n_tree=null;
		CommonTree SEMI45_tree=null;
		RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleSubtreeStream stream_vartype=new RewriteRuleSubtreeStream(adaptor,"rule vartype");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:193:13: ( vartype n= ID SEMI -> ^( MEMBER vartype $n) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:194:13: vartype n= ID SEMI
			{
			pushFollow(FOLLOW_vartype_in_vardef3669);
			vartype44=vartype();
			state._fsp--;

			stream_vartype.add(vartype44.getTree());
			n=(Token)match(input,ID,FOLLOW_ID_in_vardef3673);  
			stream_ID.add(n);

			SEMI45=(Token)match(input,SEMI,FOLLOW_SEMI_in_vardef3675);  
			stream_SEMI.add(SEMI45);

			// AST REWRITE
			// elements: n, vartype
			// token labels: n
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_n=new RewriteRuleTokenStream(adaptor,"token n",n);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 194:30: -> ^( MEMBER vartype $n)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:194:33: ^( MEMBER vartype $n)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(MEMBER, "MEMBER"), root_1);
				adaptor.addChild(root_1, stream_vartype.nextTree());
				adaptor.addChild(root_1, stream_n.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "vardef"


	public static class vartype_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "vartype"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:196:1: vartype : ( INTTYPE -> ^( RAW INTTYPE ) | STRINGTYPE -> ^( RAW STRINGTYPE ) | OBJECTTYPE -> ^( RAW OBJECTTYPE ) | DATETYPE -> ^( RAW DATETYPE ) | LONGTYPE -> ^( RAW LONGTYPE ) | LONGCTYPE -> ^( RAW LONGCTYPE ) | BOOLTYPE -> ^( RAW BOOLTYPE ) | DOUBLETYPE -> ^( RAW DOUBLETYPE ) | BYTEARRAYTYPE -> ^( RAW BYTEARRAYTYPE ) | VOIDTYPE -> ^( RAW VOIDTYPE ) | generics1D ( LBRAC | L_THAN ) vartype ( RBRAC | G_THAN ) -> ^( generics1D vartype ) | generics2D ( LBRAC | L_THAN ) k= vartype COMMA v= vartype ( RBRAC | G_THAN ) -> ^( generics2D $k $v) |a= ID -> ^( COMPLEX $a) );
	public final TParser.vartype_return vartype() throws RecognitionException {
		TParser.vartype_return retval = new TParser.vartype_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token a=null;
		Token INTTYPE46=null;
		Token STRINGTYPE47=null;
		Token OBJECTTYPE48=null;
		Token DATETYPE49=null;
		Token LONGTYPE50=null;
		Token LONGCTYPE51=null;
		Token BOOLTYPE52=null;
		Token DOUBLETYPE53=null;
		Token BYTEARRAYTYPE54=null;
		Token VOIDTYPE55=null;
		Token LBRAC57=null;
		Token L_THAN58=null;
		Token RBRAC60=null;
		Token G_THAN61=null;
		Token LBRAC63=null;
		Token L_THAN64=null;
		Token COMMA65=null;
		Token RBRAC66=null;
		Token G_THAN67=null;
		ParserRuleReturnScope k =null;
		ParserRuleReturnScope v =null;
		ParserRuleReturnScope generics1D56 =null;
		ParserRuleReturnScope vartype59 =null;
		ParserRuleReturnScope generics2D62 =null;

		CommonTree a_tree=null;
		CommonTree INTTYPE46_tree=null;
		CommonTree STRINGTYPE47_tree=null;
		CommonTree OBJECTTYPE48_tree=null;
		CommonTree DATETYPE49_tree=null;
		CommonTree LONGTYPE50_tree=null;
		CommonTree LONGCTYPE51_tree=null;
		CommonTree BOOLTYPE52_tree=null;
		CommonTree DOUBLETYPE53_tree=null;
		CommonTree BYTEARRAYTYPE54_tree=null;
		CommonTree VOIDTYPE55_tree=null;
		CommonTree LBRAC57_tree=null;
		CommonTree L_THAN58_tree=null;
		CommonTree RBRAC60_tree=null;
		CommonTree G_THAN61_tree=null;
		CommonTree LBRAC63_tree=null;
		CommonTree L_THAN64_tree=null;
		CommonTree COMMA65_tree=null;
		CommonTree RBRAC66_tree=null;
		CommonTree G_THAN67_tree=null;
		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
		RewriteRuleTokenStream stream_INTTYPE=new RewriteRuleTokenStream(adaptor,"token INTTYPE");
		RewriteRuleTokenStream stream_VOIDTYPE=new RewriteRuleTokenStream(adaptor,"token VOIDTYPE");
		RewriteRuleTokenStream stream_L_THAN=new RewriteRuleTokenStream(adaptor,"token L_THAN");
		RewriteRuleTokenStream stream_RBRAC=new RewriteRuleTokenStream(adaptor,"token RBRAC");
		RewriteRuleTokenStream stream_DATETYPE=new RewriteRuleTokenStream(adaptor,"token DATETYPE");
		RewriteRuleTokenStream stream_DOUBLETYPE=new RewriteRuleTokenStream(adaptor,"token DOUBLETYPE");
		RewriteRuleTokenStream stream_LBRAC=new RewriteRuleTokenStream(adaptor,"token LBRAC");
		RewriteRuleTokenStream stream_LONGCTYPE=new RewriteRuleTokenStream(adaptor,"token LONGCTYPE");
		RewriteRuleTokenStream stream_BYTEARRAYTYPE=new RewriteRuleTokenStream(adaptor,"token BYTEARRAYTYPE");
		RewriteRuleTokenStream stream_G_THAN=new RewriteRuleTokenStream(adaptor,"token G_THAN");
		RewriteRuleTokenStream stream_OBJECTTYPE=new RewriteRuleTokenStream(adaptor,"token OBJECTTYPE");
		RewriteRuleTokenStream stream_LONGTYPE=new RewriteRuleTokenStream(adaptor,"token LONGTYPE");
		RewriteRuleTokenStream stream_BOOLTYPE=new RewriteRuleTokenStream(adaptor,"token BOOLTYPE");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleTokenStream stream_STRINGTYPE=new RewriteRuleTokenStream(adaptor,"token STRINGTYPE");
		RewriteRuleSubtreeStream stream_vartype=new RewriteRuleSubtreeStream(adaptor,"rule vartype");
		RewriteRuleSubtreeStream stream_generics1D=new RewriteRuleSubtreeStream(adaptor,"rule generics1D");
		RewriteRuleSubtreeStream stream_generics2D=new RewriteRuleSubtreeStream(adaptor,"rule generics2D");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:196:13: ( INTTYPE -> ^( RAW INTTYPE ) | STRINGTYPE -> ^( RAW STRINGTYPE ) | OBJECTTYPE -> ^( RAW OBJECTTYPE ) | DATETYPE -> ^( RAW DATETYPE ) | LONGTYPE -> ^( RAW LONGTYPE ) | LONGCTYPE -> ^( RAW LONGCTYPE ) | BOOLTYPE -> ^( RAW BOOLTYPE ) | DOUBLETYPE -> ^( RAW DOUBLETYPE ) | BYTEARRAYTYPE -> ^( RAW BYTEARRAYTYPE ) | VOIDTYPE -> ^( RAW VOIDTYPE ) | generics1D ( LBRAC | L_THAN ) vartype ( RBRAC | G_THAN ) -> ^( generics1D vartype ) | generics2D ( LBRAC | L_THAN ) k= vartype COMMA v= vartype ( RBRAC | G_THAN ) -> ^( generics2D $k $v) |a= ID -> ^( COMPLEX $a) )
			int alt17=13;
			switch ( input.LA(1) ) {
			case INTTYPE:
				{
				alt17=1;
				}
				break;
			case STRINGTYPE:
				{
				alt17=2;
				}
				break;
			case OBJECTTYPE:
				{
				alt17=3;
				}
				break;
			case DATETYPE:
				{
				alt17=4;
				}
				break;
			case LONGTYPE:
				{
				alt17=5;
				}
				break;
			case LONGCTYPE:
				{
				alt17=6;
				}
				break;
			case BOOLTYPE:
				{
				alt17=7;
				}
				break;
			case DOUBLETYPE:
				{
				alt17=8;
				}
				break;
			case BYTEARRAYTYPE:
				{
				alt17=9;
				}
				break;
			case VOIDTYPE:
				{
				alt17=10;
				}
				break;
			case LISTTYPE:
			case SETTYPE:
			case CLASSTYPE:
				{
				alt17=11;
				}
				break;
			case MAPTYPE:
				{
				alt17=12;
				}
				break;
			case ID:
				{
				alt17=13;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 17, 0, input);
				throw nvae;
			}
			switch (alt17) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:197:13: INTTYPE
					{
					INTTYPE46=(Token)match(input,INTTYPE,FOLLOW_INTTYPE_in_vartype3709);  
					stream_INTTYPE.add(INTTYPE46);

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

					root_0 = (CommonTree)adaptor.nil();
					// 197:45: -> ^( RAW INTTYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:197:48: ^( RAW INTTYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_INTTYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:198:15: STRINGTYPE
					{
					STRINGTYPE47=(Token)match(input,STRINGTYPE,FOLLOW_STRINGTYPE_in_vartype3757);  
					stream_STRINGTYPE.add(STRINGTYPE47);

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

					root_0 = (CommonTree)adaptor.nil();
					// 198:45: -> ^( RAW STRINGTYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:198:48: ^( RAW STRINGTYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_STRINGTYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:199:15: OBJECTTYPE
					{
					OBJECTTYPE48=(Token)match(input,OBJECTTYPE,FOLLOW_OBJECTTYPE_in_vartype3800);  
					stream_OBJECTTYPE.add(OBJECTTYPE48);

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

					root_0 = (CommonTree)adaptor.nil();
					// 199:45: -> ^( RAW OBJECTTYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:199:48: ^( RAW OBJECTTYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_OBJECTTYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:200:15: DATETYPE
					{
					DATETYPE49=(Token)match(input,DATETYPE,FOLLOW_DATETYPE_in_vartype3843);  
					stream_DATETYPE.add(DATETYPE49);

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

					root_0 = (CommonTree)adaptor.nil();
					// 200:38: -> ^( RAW DATETYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:200:41: ^( RAW DATETYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_DATETYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:201:15: LONGTYPE
					{
					LONGTYPE50=(Token)match(input,LONGTYPE,FOLLOW_LONGTYPE_in_vartype3881);  
					stream_LONGTYPE.add(LONGTYPE50);

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

					root_0 = (CommonTree)adaptor.nil();
					// 201:45: -> ^( RAW LONGTYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:201:48: ^( RAW LONGTYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_LONGTYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:202:15: LONGCTYPE
					{
					LONGCTYPE51=(Token)match(input,LONGCTYPE,FOLLOW_LONGCTYPE_in_vartype3926);  
					stream_LONGCTYPE.add(LONGCTYPE51);

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

					root_0 = (CommonTree)adaptor.nil();
					// 202:45: -> ^( RAW LONGCTYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:202:48: ^( RAW LONGCTYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_LONGCTYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:203:15: BOOLTYPE
					{
					BOOLTYPE52=(Token)match(input,BOOLTYPE,FOLLOW_BOOLTYPE_in_vartype3970);  
					stream_BOOLTYPE.add(BOOLTYPE52);

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

					root_0 = (CommonTree)adaptor.nil();
					// 203:45: -> ^( RAW BOOLTYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:203:48: ^( RAW BOOLTYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_BOOLTYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 8 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:204:15: DOUBLETYPE
					{
					DOUBLETYPE53=(Token)match(input,DOUBLETYPE,FOLLOW_DOUBLETYPE_in_vartype4015);  
					stream_DOUBLETYPE.add(DOUBLETYPE53);

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

					root_0 = (CommonTree)adaptor.nil();
					// 204:45: -> ^( RAW DOUBLETYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:204:48: ^( RAW DOUBLETYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_DOUBLETYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 9 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:205:15: BYTEARRAYTYPE
					{
					BYTEARRAYTYPE54=(Token)match(input,BYTEARRAYTYPE,FOLLOW_BYTEARRAYTYPE_in_vartype4058);  
					stream_BYTEARRAYTYPE.add(BYTEARRAYTYPE54);

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

					root_0 = (CommonTree)adaptor.nil();
					// 205:45: -> ^( RAW BYTEARRAYTYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:205:48: ^( RAW BYTEARRAYTYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_BYTEARRAYTYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 10 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:206:15: VOIDTYPE
					{
					VOIDTYPE55=(Token)match(input,VOIDTYPE,FOLLOW_VOIDTYPE_in_vartype4098);  
					stream_VOIDTYPE.add(VOIDTYPE55);

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

					root_0 = (CommonTree)adaptor.nil();
					// 206:45: -> ^( RAW VOIDTYPE )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:206:48: ^( RAW VOIDTYPE )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RAW, "RAW"), root_1);
						adaptor.addChild(root_1, stream_VOIDTYPE.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 11 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:207:15: generics1D ( LBRAC | L_THAN ) vartype ( RBRAC | G_THAN )
					{
					pushFollow(FOLLOW_generics1D_in_vartype4143);
					generics1D56=generics1D();
					state._fsp--;

					stream_generics1D.add(generics1D56.getTree());
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:207:26: ( LBRAC | L_THAN )
					int alt13=2;
					int LA13_0 = input.LA(1);
					if ( (LA13_0==LBRAC) ) {
						alt13=1;
					}
					else if ( (LA13_0==L_THAN) ) {
						alt13=2;
					}

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

					switch (alt13) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:207:27: LBRAC
							{
							LBRAC57=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_vartype4146);  
							stream_LBRAC.add(LBRAC57);

							}
							break;
						case 2 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:207:33: L_THAN
							{
							L_THAN58=(Token)match(input,L_THAN,FOLLOW_L_THAN_in_vartype4148);  
							stream_L_THAN.add(L_THAN58);

							}
							break;

					}

					pushFollow(FOLLOW_vartype_in_vartype4151);
					vartype59=vartype();
					state._fsp--;

					stream_vartype.add(vartype59.getTree());
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:207:49: ( RBRAC | G_THAN )
					int alt14=2;
					int LA14_0 = input.LA(1);
					if ( (LA14_0==RBRAC) ) {
						alt14=1;
					}
					else if ( (LA14_0==G_THAN) ) {
						alt14=2;
					}

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

					switch (alt14) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:207:50: RBRAC
							{
							RBRAC60=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_vartype4154);  
							stream_RBRAC.add(RBRAC60);

							}
							break;
						case 2 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:207:56: G_THAN
							{
							G_THAN61=(Token)match(input,G_THAN,FOLLOW_G_THAN_in_vartype4156);  
							stream_G_THAN.add(G_THAN61);

							}
							break;

					}

					// AST REWRITE
					// elements: vartype, generics1D
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 207:64: -> ^( generics1D vartype )
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:207:67: ^( generics1D vartype )
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot(stream_generics1D.nextNode(), root_1);
						adaptor.addChild(root_1, stream_vartype.nextTree());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 12 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:208:15: generics2D ( LBRAC | L_THAN ) k= vartype COMMA v= vartype ( RBRAC | G_THAN )
					{
					pushFollow(FOLLOW_generics2D_in_vartype4181);
					generics2D62=generics2D();
					state._fsp--;

					stream_generics2D.add(generics2D62.getTree());
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:208:26: ( LBRAC | L_THAN )
					int alt15=2;
					int LA15_0 = input.LA(1);
					if ( (LA15_0==LBRAC) ) {
						alt15=1;
					}
					else if ( (LA15_0==L_THAN) ) {
						alt15=2;
					}

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

					switch (alt15) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:208:27: LBRAC
							{
							LBRAC63=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_vartype4184);  
							stream_LBRAC.add(LBRAC63);

							}
							break;
						case 2 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:208:33: L_THAN
							{
							L_THAN64=(Token)match(input,L_THAN,FOLLOW_L_THAN_in_vartype4186);  
							stream_L_THAN.add(L_THAN64);

							}
							break;

					}

					pushFollow(FOLLOW_vartype_in_vartype4191);
					k=vartype();
					state._fsp--;

					stream_vartype.add(k.getTree());
					COMMA65=(Token)match(input,COMMA,FOLLOW_COMMA_in_vartype4193);  
					stream_COMMA.add(COMMA65);

					pushFollow(FOLLOW_vartype_in_vartype4197);
					v=vartype();
					state._fsp--;

					stream_vartype.add(v.getTree());
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:208:67: ( RBRAC | G_THAN )
					int alt16=2;
					int LA16_0 = input.LA(1);
					if ( (LA16_0==RBRAC) ) {
						alt16=1;
					}
					else if ( (LA16_0==G_THAN) ) {
						alt16=2;
					}

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

					switch (alt16) {
						case 1 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:208:68: RBRAC
							{
							RBRAC66=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_vartype4200);  
							stream_RBRAC.add(RBRAC66);

							}
							break;
						case 2 :
							// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:208:74: G_THAN
							{
							G_THAN67=(Token)match(input,G_THAN,FOLLOW_G_THAN_in_vartype4202);  
							stream_G_THAN.add(G_THAN67);

							}
							break;

					}

					// AST REWRITE
					// elements: k, generics2D, v
					// token labels: 
					// rule labels: v, k, retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_v=new RewriteRuleSubtreeStream(adaptor,"rule v",v!=null?v.getTree():null);
					RewriteRuleSubtreeStream stream_k=new RewriteRuleSubtreeStream(adaptor,"rule k",k!=null?k.getTree():null);
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 208:82: -> ^( generics2D $k $v)
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:208:85: ^( generics2D $k $v)
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot(stream_generics2D.nextNode(), root_1);
						adaptor.addChild(root_1, stream_k.nextTree());
						adaptor.addChild(root_1, stream_v.nextTree());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;
				case 13 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:209:15: a= ID
					{
					a=(Token)match(input,ID,FOLLOW_ID_in_vartype4233);  
					stream_ID.add(a);

					// AST REWRITE
					// elements: a
					// token labels: a
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleTokenStream stream_a=new RewriteRuleTokenStream(adaptor,"token a",a);
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (CommonTree)adaptor.nil();
					// 209:45: -> ^( COMPLEX $a)
					{
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:209:48: ^( COMPLEX $a)
						{
						CommonTree root_1 = (CommonTree)adaptor.nil();
						root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(COMPLEX, "COMPLEX"), root_1);
						adaptor.addChild(root_1, stream_a.nextNode());
						adaptor.addChild(root_0, root_1);
						}

					}


					retval.tree = root_0;

					}
					break;

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "vartype"


	public static class generics1D_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "generics1D"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:212:1: generics1D : ( LISTTYPE | SETTYPE | CLASSTYPE );
	public final TParser.generics1D_return generics1D() throws RecognitionException {
		TParser.generics1D_return retval = new TParser.generics1D_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token set68=null;

		CommonTree set68_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:212:12: ( LISTTYPE | SETTYPE | CLASSTYPE )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:
			{
			root_0 = (CommonTree)adaptor.nil();


			set68=input.LT(1);
			if ( input.LA(1)==LISTTYPE||input.LA(1)==SETTYPE||input.LA(1)==CLASSTYPE ) {
				input.consume();
				adaptor.addChild(root_0, (CommonTree)adaptor.create(set68));
				state.errorRecovery=false;
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				throw mse;
			}
			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "generics1D"


	public static class generics2D_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "generics2D"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:216:1: generics2D : MAPTYPE ;
	public final TParser.generics2D_return generics2D() throws RecognitionException {
		TParser.generics2D_return retval = new TParser.generics2D_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token MAPTYPE69=null;

		CommonTree MAPTYPE69_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:216:12: ( MAPTYPE )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:217:5: MAPTYPE
			{
			root_0 = (CommonTree)adaptor.nil();


			MAPTYPE69=(Token)match(input,MAPTYPE,FOLLOW_MAPTYPE_in_generics2D4309); 
			MAPTYPE69_tree = (CommonTree)adaptor.create(MAPTYPE69);
			adaptor.addChild(root_0, MAPTYPE69_tree);

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "generics2D"


	public static class apiExpr_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "apiExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:220:1: apiExpr : doc= DOC (deprecated= deprecatedAspect )? API LBRAC apiType= ID RBRAC LPAREN ( apistmt )* RPAREN -> ^( APISEC $doc ( $deprecated)? $apiType ( apistmt )* ) ;
	public final TParser.apiExpr_return apiExpr() throws RecognitionException {
		TParser.apiExpr_return retval = new TParser.apiExpr_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token doc=null;
		Token apiType=null;
		Token API70=null;
		Token LBRAC71=null;
		Token RBRAC72=null;
		Token LPAREN73=null;
		Token RPAREN75=null;
		ParserRuleReturnScope deprecated =null;
		ParserRuleReturnScope apistmt74 =null;

		CommonTree doc_tree=null;
		CommonTree apiType_tree=null;
		CommonTree API70_tree=null;
		CommonTree LBRAC71_tree=null;
		CommonTree RBRAC72_tree=null;
		CommonTree LPAREN73_tree=null;
		CommonTree RPAREN75_tree=null;
		RewriteRuleTokenStream stream_LBRAC=new RewriteRuleTokenStream(adaptor,"token LBRAC");
		RewriteRuleTokenStream stream_RBRAC=new RewriteRuleTokenStream(adaptor,"token RBRAC");
		RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
		RewriteRuleTokenStream stream_DOC=new RewriteRuleTokenStream(adaptor,"token DOC");
		RewriteRuleTokenStream stream_API=new RewriteRuleTokenStream(adaptor,"token API");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
		RewriteRuleSubtreeStream stream_apistmt=new RewriteRuleSubtreeStream(adaptor,"rule apistmt");
		RewriteRuleSubtreeStream stream_deprecatedAspect=new RewriteRuleSubtreeStream(adaptor,"rule deprecatedAspect");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:220:9: (doc= DOC (deprecated= deprecatedAspect )? API LBRAC apiType= ID RBRAC LPAREN ( apistmt )* RPAREN -> ^( APISEC $doc ( $deprecated)? $apiType ( apistmt )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:221:5: doc= DOC (deprecated= deprecatedAspect )? API LBRAC apiType= ID RBRAC LPAREN ( apistmt )* RPAREN
			{
			doc=(Token)match(input,DOC,FOLLOW_DOC_in_apiExpr4328);  
			stream_DOC.add(doc);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:221:23: (deprecated= deprecatedAspect )?
			int alt18=2;
			int LA18_0 = input.LA(1);
			if ( (LA18_0==AT) ) {
				alt18=1;
			}
			switch (alt18) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:221:23: deprecated= deprecatedAspect
					{
					pushFollow(FOLLOW_deprecatedAspect_in_apiExpr4332);
					deprecated=deprecatedAspect();
					state._fsp--;

					stream_deprecatedAspect.add(deprecated.getTree());
					}
					break;

			}

			API70=(Token)match(input,API,FOLLOW_API_in_apiExpr4335);  
			stream_API.add(API70);

			LBRAC71=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_apiExpr4337);  
			stream_LBRAC.add(LBRAC71);

			apiType=(Token)match(input,ID,FOLLOW_ID_in_apiExpr4341);  
			stream_ID.add(apiType);

			RBRAC72=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_apiExpr4343);  
			stream_RBRAC.add(RBRAC72);

			LPAREN73=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_apiExpr4345);  
			stream_LPAREN.add(LPAREN73);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:221:76: ( apistmt )*
			loop19:
			while (true) {
				int alt19=2;
				int LA19_0 = input.LA(1);
				if ( (LA19_0==DOC) ) {
					alt19=1;
				}

				switch (alt19) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:221:76: apistmt
					{
					pushFollow(FOLLOW_apistmt_in_apiExpr4347);
					apistmt74=apistmt();
					state._fsp--;

					stream_apistmt.add(apistmt74.getTree());
					}
					break;

				default :
					break loop19;
				}
			}

			RPAREN75=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_apiExpr4350);  
			stream_RPAREN.add(RPAREN75);

			// AST REWRITE
			// elements: apistmt, doc, apiType, deprecated
			// token labels: doc, apiType
			// rule labels: deprecated, retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_doc=new RewriteRuleTokenStream(adaptor,"token doc",doc);
			RewriteRuleTokenStream stream_apiType=new RewriteRuleTokenStream(adaptor,"token apiType",apiType);
			RewriteRuleSubtreeStream stream_deprecated=new RewriteRuleSubtreeStream(adaptor,"rule deprecated",deprecated!=null?deprecated.getTree():null);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 221:92: -> ^( APISEC $doc ( $deprecated)? $apiType ( apistmt )* )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:221:95: ^( APISEC $doc ( $deprecated)? $apiType ( apistmt )* )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APISEC, "APISEC"), root_1);
				adaptor.addChild(root_1, stream_doc.nextNode());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:221:110: ( $deprecated)?
				if ( stream_deprecated.hasNext() ) {
					adaptor.addChild(root_1, stream_deprecated.nextTree());
				}
				stream_deprecated.reset();

				adaptor.addChild(root_1, stream_apiType.nextNode());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:221:131: ( apistmt )*
				while ( stream_apistmt.hasNext() ) {
					adaptor.addChild(root_1, stream_apistmt.nextTree());
				}
				stream_apistmt.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "apiExpr"


	public static class apistmt_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "apistmt"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:1: apistmt : doc= DOC ent= entitleAspect (deprecated= deprecatedAspect )? (streaming= STREAMING )? visibility vartype fnName= ID LBRAC paramList RBRAC SEMI -> ^( APIENTRY $doc $ent ( $deprecated)? ( $streaming)? ^( VISIBILITY visibility ) ^( RETTYPE vartype ) ^( FNNAME $fnName) paramList ) ;
	public final TParser.apistmt_return apistmt() throws RecognitionException {
		TParser.apistmt_return retval = new TParser.apistmt_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token doc=null;
		Token streaming=null;
		Token fnName=null;
		Token LBRAC78=null;
		Token RBRAC80=null;
		Token SEMI81=null;
		ParserRuleReturnScope ent =null;
		ParserRuleReturnScope deprecated =null;
		ParserRuleReturnScope visibility76 =null;
		ParserRuleReturnScope vartype77 =null;
		ParserRuleReturnScope paramList79 =null;

		CommonTree doc_tree=null;
		CommonTree streaming_tree=null;
		CommonTree fnName_tree=null;
		CommonTree LBRAC78_tree=null;
		CommonTree RBRAC80_tree=null;
		CommonTree SEMI81_tree=null;
		RewriteRuleTokenStream stream_LBRAC=new RewriteRuleTokenStream(adaptor,"token LBRAC");
		RewriteRuleTokenStream stream_RBRAC=new RewriteRuleTokenStream(adaptor,"token RBRAC");
		RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
		RewriteRuleTokenStream stream_DOC=new RewriteRuleTokenStream(adaptor,"token DOC");
		RewriteRuleTokenStream stream_STREAMING=new RewriteRuleTokenStream(adaptor,"token STREAMING");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleSubtreeStream stream_vartype=new RewriteRuleSubtreeStream(adaptor,"rule vartype");
		RewriteRuleSubtreeStream stream_visibility=new RewriteRuleSubtreeStream(adaptor,"rule visibility");
		RewriteRuleSubtreeStream stream_entitleAspect=new RewriteRuleSubtreeStream(adaptor,"rule entitleAspect");
		RewriteRuleSubtreeStream stream_paramList=new RewriteRuleSubtreeStream(adaptor,"rule paramList");
		RewriteRuleSubtreeStream stream_deprecatedAspect=new RewriteRuleSubtreeStream(adaptor,"rule deprecatedAspect");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:9: (doc= DOC ent= entitleAspect (deprecated= deprecatedAspect )? (streaming= STREAMING )? visibility vartype fnName= ID LBRAC paramList RBRAC SEMI -> ^( APIENTRY $doc $ent ( $deprecated)? ( $streaming)? ^( VISIBILITY visibility ) ^( RETTYPE vartype ) ^( FNNAME $fnName) paramList ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:13: doc= DOC ent= entitleAspect (deprecated= deprecatedAspect )? (streaming= STREAMING )? visibility vartype fnName= ID LBRAC paramList RBRAC SEMI
			{
			doc=(Token)match(input,DOC,FOLLOW_DOC_in_apistmt4393);  
			stream_DOC.add(doc);

			pushFollow(FOLLOW_entitleAspect_in_apistmt4397);
			ent=entitleAspect();
			state._fsp--;

			stream_entitleAspect.add(ent.getTree());
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:49: (deprecated= deprecatedAspect )?
			int alt20=2;
			int LA20_0 = input.LA(1);
			if ( (LA20_0==AT) ) {
				alt20=1;
			}
			switch (alt20) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:49: deprecated= deprecatedAspect
					{
					pushFollow(FOLLOW_deprecatedAspect_in_apistmt4401);
					deprecated=deprecatedAspect();
					state._fsp--;

					stream_deprecatedAspect.add(deprecated.getTree());
					}
					break;

			}

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:77: (streaming= STREAMING )?
			int alt21=2;
			int LA21_0 = input.LA(1);
			if ( (LA21_0==STREAMING) ) {
				alt21=1;
			}
			switch (alt21) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:77: streaming= STREAMING
					{
					streaming=(Token)match(input,STREAMING,FOLLOW_STREAMING_in_apistmt4406);  
					stream_STREAMING.add(streaming);

					}
					break;

			}

			pushFollow(FOLLOW_visibility_in_apistmt4409);
			visibility76=visibility();
			state._fsp--;

			stream_visibility.add(visibility76.getTree());
			pushFollow(FOLLOW_vartype_in_apistmt4411);
			vartype77=vartype();
			state._fsp--;

			stream_vartype.add(vartype77.getTree());
			fnName=(Token)match(input,ID,FOLLOW_ID_in_apistmt4415);  
			stream_ID.add(fnName);

			LBRAC78=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_apistmt4417);  
			stream_LBRAC.add(LBRAC78);

			pushFollow(FOLLOW_paramList_in_apistmt4419);
			paramList79=paramList();
			state._fsp--;

			stream_paramList.add(paramList79.getTree());
			RBRAC80=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_apistmt4421);  
			stream_RBRAC.add(RBRAC80);

			SEMI81=(Token)match(input,SEMI,FOLLOW_SEMI_in_apistmt4423);  
			stream_SEMI.add(SEMI81);

			// AST REWRITE
			// elements: visibility, fnName, paramList, doc, streaming, ent, deprecated, vartype
			// token labels: fnName, streaming, doc
			// rule labels: deprecated, ent, retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_fnName=new RewriteRuleTokenStream(adaptor,"token fnName",fnName);
			RewriteRuleTokenStream stream_streaming=new RewriteRuleTokenStream(adaptor,"token streaming",streaming);
			RewriteRuleTokenStream stream_doc=new RewriteRuleTokenStream(adaptor,"token doc",doc);
			RewriteRuleSubtreeStream stream_deprecated=new RewriteRuleSubtreeStream(adaptor,"rule deprecated",deprecated!=null?deprecated.getTree():null);
			RewriteRuleSubtreeStream stream_ent=new RewriteRuleSubtreeStream(adaptor,"rule ent",ent!=null?ent.getTree():null);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 223:145: -> ^( APIENTRY $doc $ent ( $deprecated)? ( $streaming)? ^( VISIBILITY visibility ) ^( RETTYPE vartype ) ^( FNNAME $fnName) paramList )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:148: ^( APIENTRY $doc $ent ( $deprecated)? ( $streaming)? ^( VISIBILITY visibility ) ^( RETTYPE vartype ) ^( FNNAME $fnName) paramList )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(APIENTRY, "APIENTRY"), root_1);
				adaptor.addChild(root_1, stream_doc.nextNode());
				adaptor.addChild(root_1, stream_ent.nextTree());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:170: ( $deprecated)?
				if ( stream_deprecated.hasNext() ) {
					adaptor.addChild(root_1, stream_deprecated.nextTree());
				}
				stream_deprecated.reset();

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:183: ( $streaming)?
				if ( stream_streaming.hasNext() ) {
					adaptor.addChild(root_1, stream_streaming.nextNode());
				}
				stream_streaming.reset();

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:194: ^( VISIBILITY visibility )
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(VISIBILITY, "VISIBILITY"), root_2);
				adaptor.addChild(root_2, stream_visibility.nextTree());
				adaptor.addChild(root_1, root_2);
				}

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:219: ^( RETTYPE vartype )
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(RETTYPE, "RETTYPE"), root_2);
				adaptor.addChild(root_2, stream_vartype.nextTree());
				adaptor.addChild(root_1, root_2);
				}

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:223:238: ^( FNNAME $fnName)
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FNNAME, "FNNAME"), root_2);
				adaptor.addChild(root_2, stream_fnName.nextNode());
				adaptor.addChild(root_1, root_2);
				}

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

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "apistmt"


	public static class visibility_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "visibility"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:225:1: visibility : ( PRIVATE -> PRIVATEVIS | PUBLIC -> PUBLICVIS );
	public final TParser.visibility_return visibility() throws RecognitionException {
		TParser.visibility_return retval = new TParser.visibility_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token PRIVATE82=null;
		Token PUBLIC83=null;

		CommonTree PRIVATE82_tree=null;
		CommonTree PUBLIC83_tree=null;
		RewriteRuleTokenStream stream_PUBLIC=new RewriteRuleTokenStream(adaptor,"token PUBLIC");
		RewriteRuleTokenStream stream_PRIVATE=new RewriteRuleTokenStream(adaptor,"token PRIVATE");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:225:12: ( PRIVATE -> PRIVATEVIS | PUBLIC -> PUBLICVIS )
			int alt22=2;
			int LA22_0 = input.LA(1);
			if ( (LA22_0==PRIVATE) ) {
				alt22=1;
			}
			else if ( (LA22_0==PUBLIC) ) {
				alt22=2;
			}

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

			switch (alt22) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:225:14: PRIVATE
					{
					PRIVATE82=(Token)match(input,PRIVATE,FOLLOW_PRIVATE_in_visibility4472);  
					stream_PRIVATE.add(PRIVATE82);

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

					root_0 = (CommonTree)adaptor.nil();
					// 225:22: -> PRIVATEVIS
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(PRIVATEVIS, "PRIVATEVIS"));
					}


					retval.tree = root_0;

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:226:11: PUBLIC
					{
					PUBLIC83=(Token)match(input,PUBLIC,FOLLOW_PUBLIC_in_visibility4489);  
					stream_PUBLIC.add(PUBLIC83);

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

					root_0 = (CommonTree)adaptor.nil();
					// 226:18: -> PUBLICVIS
					{
						adaptor.addChild(root_0, (CommonTree)adaptor.create(PUBLICVIS, "PUBLICVIS"));
					}


					retval.tree = root_0;

					}
					break;

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "visibility"


	public static class paramList_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "paramList"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:1: paramList : ( param )? ( COMMA param )* -> ^( PARAMS ( param )* ) ;
	public final TParser.paramList_return paramList() throws RecognitionException {
		TParser.paramList_return retval = new TParser.paramList_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token COMMA85=null;
		ParserRuleReturnScope param84 =null;
		ParserRuleReturnScope param86 =null;

		CommonTree COMMA85_tree=null;
		RewriteRuleTokenStream stream_COMMA=new RewriteRuleTokenStream(adaptor,"token COMMA");
		RewriteRuleSubtreeStream stream_param=new RewriteRuleSubtreeStream(adaptor,"rule param");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:11: ( ( param )? ( COMMA param )* -> ^( PARAMS ( param )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:13: ( param )? ( COMMA param )*
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:13: ( param )?
			int alt23=2;
			int LA23_0 = input.LA(1);
			if ( ((LA23_0 >= BOOLTYPE && LA23_0 <= BYTEARRAYTYPE)||LA23_0==DATETYPE||LA23_0==DOUBLETYPE||LA23_0==ID||LA23_0==INTTYPE||(LA23_0 >= LISTTYPE && LA23_0 <= LONGTYPE)||LA23_0==MAPTYPE||LA23_0==OBJECTTYPE||LA23_0==SETTYPE||LA23_0==STRINGTYPE||LA23_0==VOIDTYPE||LA23_0==CLASSTYPE) ) {
				alt23=1;
			}
			switch (alt23) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:13: param
					{
					pushFollow(FOLLOW_param_in_paramList4501);
					param84=param();
					state._fsp--;

					stream_param.add(param84.getTree());
					}
					break;

			}

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:20: ( COMMA param )*
			loop24:
			while (true) {
				int alt24=2;
				int LA24_0 = input.LA(1);
				if ( (LA24_0==COMMA) ) {
					alt24=1;
				}

				switch (alt24) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:21: COMMA param
					{
					COMMA85=(Token)match(input,COMMA,FOLLOW_COMMA_in_paramList4505);  
					stream_COMMA.add(COMMA85);

					pushFollow(FOLLOW_param_in_paramList4507);
					param86=param();
					state._fsp--;

					stream_param.add(param86.getTree());
					}
					break;

				default :
					break loop24;
				}
			}

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

			root_0 = (CommonTree)adaptor.nil();
			// 228:35: -> ^( PARAMS ( param )* )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:38: ^( PARAMS ( param )* )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAMS, "PARAMS"), root_1);
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:228:47: ( param )*
				while ( stream_param.hasNext() ) {
					adaptor.addChild(root_1, stream_param.nextTree());
				}
				stream_param.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "paramList"


	public static class param_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "param"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:1: param : vartype name= ID ( BANG )? -> ^( PARAM ^( TYPE vartype ) ^( NAME $name) ( BANG )? ) ;
	public final TParser.param_return param() throws RecognitionException {
		TParser.param_return retval = new TParser.param_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token name=null;
		Token BANG88=null;
		ParserRuleReturnScope vartype87 =null;

		CommonTree name_tree=null;
		CommonTree BANG88_tree=null;
		RewriteRuleTokenStream stream_BANG=new RewriteRuleTokenStream(adaptor,"token BANG");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleSubtreeStream stream_vartype=new RewriteRuleSubtreeStream(adaptor,"rule vartype");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:7: ( vartype name= ID ( BANG )? -> ^( PARAM ^( TYPE vartype ) ^( NAME $name) ( BANG )? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:10: vartype name= ID ( BANG )?
			{
			pushFollow(FOLLOW_vartype_in_param4539);
			vartype87=vartype();
			state._fsp--;

			stream_vartype.add(vartype87.getTree());
			name=(Token)match(input,ID,FOLLOW_ID_in_param4543);  
			stream_ID.add(name);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:26: ( BANG )?
			int alt25=2;
			int LA25_0 = input.LA(1);
			if ( (LA25_0==BANG) ) {
				alt25=1;
			}
			switch (alt25) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:26: BANG
					{
					BANG88=(Token)match(input,BANG,FOLLOW_BANG_in_param4545);  
					stream_BANG.add(BANG88);

					}
					break;

			}

			// AST REWRITE
			// elements: name, BANG, vartype
			// token labels: name
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_name=new RewriteRuleTokenStream(adaptor,"token name",name);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 230:31: -> ^( PARAM ^( TYPE vartype ) ^( NAME $name) ( BANG )? )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:34: ^( PARAM ^( TYPE vartype ) ^( NAME $name) ( BANG )? )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(PARAM, "PARAM"), root_1);
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:42: ^( TYPE vartype )
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE, "TYPE"), root_2);
				adaptor.addChild(root_2, stream_vartype.nextTree());
				adaptor.addChild(root_1, root_2);
				}

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:58: ^( NAME $name)
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NAME, "NAME"), root_2);
				adaptor.addChild(root_2, stream_name.nextNode());
				adaptor.addChild(root_1, root_2);
				}

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:230:72: ( BANG )?
				if ( stream_BANG.hasNext() ) {
					adaptor.addChild(root_1, stream_BANG.nextNode());
				}
				stream_BANG.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "param"


	public static class typeExpr_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "typeExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:233:1: typeExpr : doc= DOC ( typeAnnotation )* TYPED name= ID typeAspect typeFields -> ^( TYPEDEF $doc ( typeAnnotation )* $name typeAspect typeFields ) ;
	public final TParser.typeExpr_return typeExpr() throws RecognitionException {
		TParser.typeExpr_return retval = new TParser.typeExpr_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token doc=null;
		Token name=null;
		Token TYPED90=null;
		ParserRuleReturnScope typeAnnotation89 =null;
		ParserRuleReturnScope typeAspect91 =null;
		ParserRuleReturnScope typeFields92 =null;

		CommonTree doc_tree=null;
		CommonTree name_tree=null;
		CommonTree TYPED90_tree=null;
		RewriteRuleTokenStream stream_TYPED=new RewriteRuleTokenStream(adaptor,"token TYPED");
		RewriteRuleTokenStream stream_DOC=new RewriteRuleTokenStream(adaptor,"token DOC");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleSubtreeStream stream_typeFields=new RewriteRuleSubtreeStream(adaptor,"rule typeFields");
		RewriteRuleSubtreeStream stream_typeAnnotation=new RewriteRuleSubtreeStream(adaptor,"rule typeAnnotation");
		RewriteRuleSubtreeStream stream_typeAspect=new RewriteRuleSubtreeStream(adaptor,"rule typeAspect");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:233:11: (doc= DOC ( typeAnnotation )* TYPED name= ID typeAspect typeFields -> ^( TYPEDEF $doc ( typeAnnotation )* $name typeAspect typeFields ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:236:5: doc= DOC ( typeAnnotation )* TYPED name= ID typeAspect typeFields
			{
			doc=(Token)match(input,DOC,FOLLOW_DOC_in_typeExpr4605);  
			stream_DOC.add(doc);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:236:13: ( typeAnnotation )*
			loop26:
			while (true) {
				int alt26=2;
				int LA26_0 = input.LA(1);
				if ( (LA26_0==AT) ) {
					alt26=1;
				}

				switch (alt26) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:236:13: typeAnnotation
					{
					pushFollow(FOLLOW_typeAnnotation_in_typeExpr4607);
					typeAnnotation89=typeAnnotation();
					state._fsp--;

					stream_typeAnnotation.add(typeAnnotation89.getTree());
					}
					break;

				default :
					break loop26;
				}
			}

			TYPED90=(Token)match(input,TYPED,FOLLOW_TYPED_in_typeExpr4610);  
			stream_TYPED.add(TYPED90);

			name=(Token)match(input,ID,FOLLOW_ID_in_typeExpr4614);  
			stream_ID.add(name);

			pushFollow(FOLLOW_typeAspect_in_typeExpr4616);
			typeAspect91=typeAspect();
			state._fsp--;

			stream_typeAspect.add(typeAspect91.getTree());
			pushFollow(FOLLOW_typeFields_in_typeExpr4619);
			typeFields92=typeFields();
			state._fsp--;

			stream_typeFields.add(typeFields92.getTree());
			// AST REWRITE
			// elements: doc, typeAnnotation, typeFields, typeAspect, name
			// token labels: name, doc
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_name=new RewriteRuleTokenStream(adaptor,"token name",name);
			RewriteRuleTokenStream stream_doc=new RewriteRuleTokenStream(adaptor,"token doc",doc);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 236:66: -> ^( TYPEDEF $doc ( typeAnnotation )* $name typeAspect typeFields )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:236:69: ^( TYPEDEF $doc ( typeAnnotation )* $name typeAspect typeFields )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEDEF, "TYPEDEF"), root_1);
				adaptor.addChild(root_1, stream_doc.nextNode());
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:236:84: ( typeAnnotation )*
				while ( stream_typeAnnotation.hasNext() ) {
					adaptor.addChild(root_1, stream_typeAnnotation.nextTree());
				}
				stream_typeAnnotation.reset();

				adaptor.addChild(root_1, stream_name.nextNode());
				adaptor.addChild(root_1, stream_typeAspect.nextTree());
				adaptor.addChild(root_1, stream_typeFields.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "typeExpr"


	public static class typeAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "typeAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:238:1: typeAnnotation : AT ! ( beanAnnotation | cacheableAnnotation | storableAnnotation | addressableAnnotation | extendsAnnotation | deprecatedAnnotation | indexedAnnotation ) ;
	public final TParser.typeAnnotation_return typeAnnotation() throws RecognitionException {
		TParser.typeAnnotation_return retval = new TParser.typeAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token AT93=null;
		ParserRuleReturnScope beanAnnotation94 =null;
		ParserRuleReturnScope cacheableAnnotation95 =null;
		ParserRuleReturnScope storableAnnotation96 =null;
		ParserRuleReturnScope addressableAnnotation97 =null;
		ParserRuleReturnScope extendsAnnotation98 =null;
		ParserRuleReturnScope deprecatedAnnotation99 =null;
		ParserRuleReturnScope indexedAnnotation100 =null;

		CommonTree AT93_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:239:5: ( AT ! ( beanAnnotation | cacheableAnnotation | storableAnnotation | addressableAnnotation | extendsAnnotation | deprecatedAnnotation | indexedAnnotation ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:239:7: AT ! ( beanAnnotation | cacheableAnnotation | storableAnnotation | addressableAnnotation | extendsAnnotation | deprecatedAnnotation | indexedAnnotation )
			{
			root_0 = (CommonTree)adaptor.nil();


			AT93=(Token)match(input,AT,FOLLOW_AT_in_typeAnnotation4650); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:240:5: ( beanAnnotation | cacheableAnnotation | storableAnnotation | addressableAnnotation | extendsAnnotation | deprecatedAnnotation | indexedAnnotation )
			int alt27=7;
			switch ( input.LA(1) ) {
			case BEAN:
				{
				alt27=1;
				}
				break;
			case CACHEABLE:
				{
				alt27=2;
				}
				break;
			case STORABLE:
				{
				alt27=3;
				}
				break;
			case ADDRESSABLE:
				{
				alt27=4;
				}
				break;
			case EXTENDS:
				{
				alt27=5;
				}
				break;
			case DEPRECATED:
				{
				alt27=6;
				}
				break;
			case INDEXED:
				{
				alt27=7;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 27, 0, input);
				throw nvae;
			}
			switch (alt27) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:240:6: beanAnnotation
					{
					pushFollow(FOLLOW_beanAnnotation_in_typeAnnotation4659);
					beanAnnotation94=beanAnnotation();
					state._fsp--;

					adaptor.addChild(root_0, beanAnnotation94.getTree());

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:240:21: cacheableAnnotation
					{
					pushFollow(FOLLOW_cacheableAnnotation_in_typeAnnotation4661);
					cacheableAnnotation95=cacheableAnnotation();
					state._fsp--;

					adaptor.addChild(root_0, cacheableAnnotation95.getTree());

					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:240:41: storableAnnotation
					{
					pushFollow(FOLLOW_storableAnnotation_in_typeAnnotation4663);
					storableAnnotation96=storableAnnotation();
					state._fsp--;

					adaptor.addChild(root_0, storableAnnotation96.getTree());

					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:240:60: addressableAnnotation
					{
					pushFollow(FOLLOW_addressableAnnotation_in_typeAnnotation4665);
					addressableAnnotation97=addressableAnnotation();
					state._fsp--;

					adaptor.addChild(root_0, addressableAnnotation97.getTree());

					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:240:82: extendsAnnotation
					{
					pushFollow(FOLLOW_extendsAnnotation_in_typeAnnotation4667);
					extendsAnnotation98=extendsAnnotation();
					state._fsp--;

					adaptor.addChild(root_0, extendsAnnotation98.getTree());

					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:240:100: deprecatedAnnotation
					{
					pushFollow(FOLLOW_deprecatedAnnotation_in_typeAnnotation4669);
					deprecatedAnnotation99=deprecatedAnnotation();
					state._fsp--;

					adaptor.addChild(root_0, deprecatedAnnotation99.getTree());

					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:240:121: indexedAnnotation
					{
					pushFollow(FOLLOW_indexedAnnotation_in_typeAnnotation4671);
					indexedAnnotation100=indexedAnnotation();
					state._fsp--;

					adaptor.addChild(root_0, indexedAnnotation100.getTree());

					}
					break;

			}

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "typeAnnotation"


	public static class crudPackageAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "crudPackageAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:243:1: crudPackageAnnotation : PACKAGE EQUAL PACKAGENAME -> ^( CRUDPACKAGEANNOTATION PACKAGENAME ) ;
	public final TParser.crudPackageAnnotation_return crudPackageAnnotation() throws RecognitionException {
		TParser.crudPackageAnnotation_return retval = new TParser.crudPackageAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token PACKAGE101=null;
		Token EQUAL102=null;
		Token PACKAGENAME103=null;

		CommonTree PACKAGE101_tree=null;
		CommonTree EQUAL102_tree=null;
		CommonTree PACKAGENAME103_tree=null;
		RewriteRuleTokenStream stream_PACKAGE=new RewriteRuleTokenStream(adaptor,"token PACKAGE");
		RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
		RewriteRuleTokenStream stream_PACKAGENAME=new RewriteRuleTokenStream(adaptor,"token PACKAGENAME");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:244:5: ( PACKAGE EQUAL PACKAGENAME -> ^( CRUDPACKAGEANNOTATION PACKAGENAME ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:244:7: PACKAGE EQUAL PACKAGENAME
			{
			PACKAGE101=(Token)match(input,PACKAGE,FOLLOW_PACKAGE_in_crudPackageAnnotation4695);  
			stream_PACKAGE.add(PACKAGE101);

			EQUAL102=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_crudPackageAnnotation4697);  
			stream_EQUAL.add(EQUAL102);

			PACKAGENAME103=(Token)match(input,PACKAGENAME,FOLLOW_PACKAGENAME_in_crudPackageAnnotation4699);  
			stream_PACKAGENAME.add(PACKAGENAME103);

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

			root_0 = (CommonTree)adaptor.nil();
			// 244:33: -> ^( CRUDPACKAGEANNOTATION PACKAGENAME )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:244:36: ^( CRUDPACKAGEANNOTATION PACKAGENAME )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(CRUDPACKAGEANNOTATION, "CRUDPACKAGEANNOTATION"), root_1);
				adaptor.addChild(root_1, stream_PACKAGENAME.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "crudPackageAnnotation"


	public static class beanAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "beanAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:247:1: beanAnnotation : BEAN ;
	public final TParser.beanAnnotation_return beanAnnotation() throws RecognitionException {
		TParser.beanAnnotation_return retval = new TParser.beanAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token BEAN104=null;

		CommonTree BEAN104_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:249:5: ( BEAN )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:249:7: BEAN
			{
			root_0 = (CommonTree)adaptor.nil();


			BEAN104=(Token)match(input,BEAN,FOLLOW_BEAN_in_beanAnnotation4725); 
			BEAN104_tree = (CommonTree)adaptor.create(BEAN104);
			adaptor.addChild(root_0, BEAN104_tree);

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "beanAnnotation"


	public static class cacheableAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "cacheableAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:252:1: cacheableAnnotation : CACHEABLE ( LBRAC ID EQUAL ( TRUE | FALSE ) RBRAC )? ;
	public final TParser.cacheableAnnotation_return cacheableAnnotation() throws RecognitionException {
		TParser.cacheableAnnotation_return retval = new TParser.cacheableAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token CACHEABLE105=null;
		Token LBRAC106=null;
		Token ID107=null;
		Token EQUAL108=null;
		Token set109=null;
		Token RBRAC110=null;

		CommonTree CACHEABLE105_tree=null;
		CommonTree LBRAC106_tree=null;
		CommonTree ID107_tree=null;
		CommonTree EQUAL108_tree=null;
		CommonTree set109_tree=null;
		CommonTree RBRAC110_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:254:5: ( CACHEABLE ( LBRAC ID EQUAL ( TRUE | FALSE ) RBRAC )? )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:254:7: CACHEABLE ( LBRAC ID EQUAL ( TRUE | FALSE ) RBRAC )?
			{
			root_0 = (CommonTree)adaptor.nil();


			CACHEABLE105=(Token)match(input,CACHEABLE,FOLLOW_CACHEABLE_in_cacheableAnnotation4743); 
			CACHEABLE105_tree = (CommonTree)adaptor.create(CACHEABLE105);
			adaptor.addChild(root_0, CACHEABLE105_tree);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:254:17: ( LBRAC ID EQUAL ( TRUE | FALSE ) RBRAC )?
			int alt28=2;
			int LA28_0 = input.LA(1);
			if ( (LA28_0==LBRAC) ) {
				alt28=1;
			}
			switch (alt28) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:254:18: LBRAC ID EQUAL ( TRUE | FALSE ) RBRAC
					{
					LBRAC106=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_cacheableAnnotation4746); 
					LBRAC106_tree = (CommonTree)adaptor.create(LBRAC106);
					adaptor.addChild(root_0, LBRAC106_tree);

					ID107=(Token)match(input,ID,FOLLOW_ID_in_cacheableAnnotation4748); 
					ID107_tree = (CommonTree)adaptor.create(ID107);
					adaptor.addChild(root_0, ID107_tree);

					EQUAL108=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_cacheableAnnotation4750); 
					EQUAL108_tree = (CommonTree)adaptor.create(EQUAL108);
					adaptor.addChild(root_0, EQUAL108_tree);

					set109=input.LT(1);
					if ( input.LA(1)==FALSE||input.LA(1)==TRUE ) {
						input.consume();
						adaptor.addChild(root_0, (CommonTree)adaptor.create(set109));
						state.errorRecovery=false;
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						throw mse;
					}
					RBRAC110=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_cacheableAnnotation4758); 
					RBRAC110_tree = (CommonTree)adaptor.create(RBRAC110);
					adaptor.addChild(root_0, RBRAC110_tree);

					}
					break;

			}

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "cacheableAnnotation"


	public static class extendsAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "extendsAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:257:1: extendsAnnotation : EXTENDS LBRAC ! PACKAGENAME ID RBRAC !;
	public final TParser.extendsAnnotation_return extendsAnnotation() throws RecognitionException {
		TParser.extendsAnnotation_return retval = new TParser.extendsAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token EXTENDS111=null;
		Token LBRAC112=null;
		Token PACKAGENAME113=null;
		Token ID114=null;
		Token RBRAC115=null;

		CommonTree EXTENDS111_tree=null;
		CommonTree LBRAC112_tree=null;
		CommonTree PACKAGENAME113_tree=null;
		CommonTree ID114_tree=null;
		CommonTree RBRAC115_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:259:5: ( EXTENDS LBRAC ! PACKAGENAME ID RBRAC !)
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:259:7: EXTENDS LBRAC ! PACKAGENAME ID RBRAC !
			{
			root_0 = (CommonTree)adaptor.nil();


			EXTENDS111=(Token)match(input,EXTENDS,FOLLOW_EXTENDS_in_extendsAnnotation4782); 
			EXTENDS111_tree = (CommonTree)adaptor.create(EXTENDS111);
			adaptor.addChild(root_0, EXTENDS111_tree);

			LBRAC112=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_extendsAnnotation4784); 
			PACKAGENAME113=(Token)match(input,PACKAGENAME,FOLLOW_PACKAGENAME_in_extendsAnnotation4787); 
			PACKAGENAME113_tree = (CommonTree)adaptor.create(PACKAGENAME113);
			adaptor.addChild(root_0, PACKAGENAME113_tree);

			ID114=(Token)match(input,ID,FOLLOW_ID_in_extendsAnnotation4789); 
			ID114_tree = (CommonTree)adaptor.create(ID114);
			adaptor.addChild(root_0, ID114_tree);

			RBRAC115=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_extendsAnnotation4791); 
			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "extendsAnnotation"


	public static class deprecatedAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "deprecatedAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:262:1: deprecatedAnnotation : DEPRECATED LBRAC ! ( STRING | ID ) RBRAC !;
	public final TParser.deprecatedAnnotation_return deprecatedAnnotation() throws RecognitionException {
		TParser.deprecatedAnnotation_return retval = new TParser.deprecatedAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token DEPRECATED116=null;
		Token LBRAC117=null;
		Token set118=null;
		Token RBRAC119=null;

		CommonTree DEPRECATED116_tree=null;
		CommonTree LBRAC117_tree=null;
		CommonTree set118_tree=null;
		CommonTree RBRAC119_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:265:5: ( DEPRECATED LBRAC ! ( STRING | ID ) RBRAC !)
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:265:7: DEPRECATED LBRAC ! ( STRING | ID ) RBRAC !
			{
			root_0 = (CommonTree)adaptor.nil();


			DEPRECATED116=(Token)match(input,DEPRECATED,FOLLOW_DEPRECATED_in_deprecatedAnnotation4811); 
			DEPRECATED116_tree = (CommonTree)adaptor.create(DEPRECATED116);
			adaptor.addChild(root_0, DEPRECATED116_tree);

			LBRAC117=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_deprecatedAnnotation4813); 
			set118=input.LT(1);
			if ( input.LA(1)==ID||input.LA(1)==STRING ) {
				input.consume();
				adaptor.addChild(root_0, (CommonTree)adaptor.create(set118));
				state.errorRecovery=false;
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				throw mse;
			}
			RBRAC119=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_deprecatedAnnotation4826); 
			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "deprecatedAnnotation"


	public static class indexedAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "indexedAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:268:1: indexedAnnotation : INDEXED LBRAC ! index_name COMMA ! ID ! COLUMN ! LPAREN ! index_component ( COMMA ! index_component )* RPAREN ! RBRAC !;
	public final TParser.indexedAnnotation_return indexedAnnotation() throws RecognitionException {
		TParser.indexedAnnotation_return retval = new TParser.indexedAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token INDEXED120=null;
		Token LBRAC121=null;
		Token COMMA123=null;
		Token ID124=null;
		Token COLUMN125=null;
		Token LPAREN126=null;
		Token COMMA128=null;
		Token RPAREN130=null;
		Token RBRAC131=null;
		ParserRuleReturnScope index_name122 =null;
		ParserRuleReturnScope index_component127 =null;
		ParserRuleReturnScope index_component129 =null;

		CommonTree INDEXED120_tree=null;
		CommonTree LBRAC121_tree=null;
		CommonTree COMMA123_tree=null;
		CommonTree ID124_tree=null;
		CommonTree COLUMN125_tree=null;
		CommonTree LPAREN126_tree=null;
		CommonTree COMMA128_tree=null;
		CommonTree RPAREN130_tree=null;
		CommonTree RBRAC131_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:270:5: ( INDEXED LBRAC ! index_name COMMA ! ID ! COLUMN ! LPAREN ! index_component ( COMMA ! index_component )* RPAREN ! RBRAC !)
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:270:7: INDEXED LBRAC ! index_name COMMA ! ID ! COLUMN ! LPAREN ! index_component ( COMMA ! index_component )* RPAREN ! RBRAC !
			{
			root_0 = (CommonTree)adaptor.nil();


			INDEXED120=(Token)match(input,INDEXED,FOLLOW_INDEXED_in_indexedAnnotation4845); 
			INDEXED120_tree = (CommonTree)adaptor.create(INDEXED120);
			adaptor.addChild(root_0, INDEXED120_tree);

			LBRAC121=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_indexedAnnotation4847); 
			pushFollow(FOLLOW_index_name_in_indexedAnnotation4850);
			index_name122=index_name();
			state._fsp--;

			adaptor.addChild(root_0, index_name122.getTree());

			COMMA123=(Token)match(input,COMMA,FOLLOW_COMMA_in_indexedAnnotation4852); 
			ID124=(Token)match(input,ID,FOLLOW_ID_in_indexedAnnotation4855); 

			           if (!"fields".equals((ID124!=null?ID124.getText():null))) {
			               throw new IllegalArgumentException(
			                    String.format("Error: Expecting 'field' but found '%s' at %s:%s", (ID124!=null?ID124.getText():null), (ID124!=null?ID124.getLine():0), ID124.getCharPositionInLine()));
			           }
			       
			COLUMN125=(Token)match(input,COLUMN,FOLLOW_COLUMN_in_indexedAnnotation4867); 
			LPAREN126=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_indexedAnnotation4870); 
			pushFollow(FOLLOW_index_component_in_indexedAnnotation4873);
			index_component127=index_component();
			state._fsp--;

			adaptor.addChild(root_0, index_component127.getTree());

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:276:40: ( COMMA ! index_component )*
			loop29:
			while (true) {
				int alt29=2;
				int LA29_0 = input.LA(1);
				if ( (LA29_0==COMMA) ) {
					alt29=1;
				}

				switch (alt29) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:276:41: COMMA ! index_component
					{
					COMMA128=(Token)match(input,COMMA,FOLLOW_COMMA_in_indexedAnnotation4876); 
					pushFollow(FOLLOW_index_component_in_indexedAnnotation4879);
					index_component129=index_component();
					state._fsp--;

					adaptor.addChild(root_0, index_component129.getTree());

					}
					break;

				default :
					break loop29;
				}
			}

			RPAREN130=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_indexedAnnotation4883); 
			RBRAC131=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_indexedAnnotation4886); 
			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "indexedAnnotation"


	public static class index_name_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "index_name"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:280:1: index_name : ID COLUMN value= STRING -> ^( INDEX_NAME $value) ;
	public final TParser.index_name_return index_name() throws RecognitionException {
		TParser.index_name_return retval = new TParser.index_name_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token value=null;
		Token ID132=null;
		Token COLUMN133=null;

		CommonTree value_tree=null;
		CommonTree ID132_tree=null;
		CommonTree COLUMN133_tree=null;
		RewriteRuleTokenStream stream_COLUMN=new RewriteRuleTokenStream(adaptor,"token COLUMN");
		RewriteRuleTokenStream stream_STRING=new RewriteRuleTokenStream(adaptor,"token STRING");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:281:2: ( ID COLUMN value= STRING -> ^( INDEX_NAME $value) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:281:4: ID COLUMN value= STRING
			{
			ID132=(Token)match(input,ID,FOLLOW_ID_in_index_name4902);  
			stream_ID.add(ID132);


			          if (!"name".equals((ID132!=null?ID132.getText():null))) {
			          throw new IllegalArgumentException(
			                String.format("Error: Expecting 'name' but found '%s' at %s:%s", (ID132!=null?ID132.getText():null), (ID132!=null?ID132.getLine():0), ID132.getCharPositionInLine()));
			          }
			      
			COLUMN133=(Token)match(input,COLUMN,FOLLOW_COLUMN_in_index_name4912);  
			stream_COLUMN.add(COLUMN133);

			value=(Token)match(input,STRING,FOLLOW_STRING_in_index_name4916);  
			stream_STRING.add(value);

			// AST REWRITE
			// elements: value
			// token labels: value
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_value=new RewriteRuleTokenStream(adaptor,"token value",value);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 287:27: -> ^( INDEX_NAME $value)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:287:30: ^( INDEX_NAME $value)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INDEX_NAME, "INDEX_NAME"), root_1);
				adaptor.addChild(root_1, stream_value.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "index_name"


	public static class index_component_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "index_component"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:291:1: index_component : value= ( ID | STRING ) -> ^( INDEX_COMPONENT $value) ;
	public final TParser.index_component_return index_component() throws RecognitionException {
		TParser.index_component_return retval = new TParser.index_component_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token value=null;

		CommonTree value_tree=null;
		RewriteRuleTokenStream stream_STRING=new RewriteRuleTokenStream(adaptor,"token STRING");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:292:2: (value= ( ID | STRING ) -> ^( INDEX_COMPONENT $value) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:292:4: value= ( ID | STRING )
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:292:10: ( ID | STRING )
			int alt30=2;
			int LA30_0 = input.LA(1);
			if ( (LA30_0==ID) ) {
				alt30=1;
			}
			else if ( (LA30_0==STRING) ) {
				alt30=2;
			}

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

			switch (alt30) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:292:11: ID
					{
					value=(Token)match(input,ID,FOLLOW_ID_in_index_component4940);  
					stream_ID.add(value);

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:292:14: STRING
					{
					value=(Token)match(input,STRING,FOLLOW_STRING_in_index_component4942);  
					stream_STRING.add(value);

					}
					break;

			}

			// AST REWRITE
			// elements: value
			// token labels: value
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_value=new RewriteRuleTokenStream(adaptor,"token value",value);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 292:22: -> ^( INDEX_COMPONENT $value)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:292:25: ^( INDEX_COMPONENT $value)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(INDEX_COMPONENT, "INDEX_COMPONENT"), root_1);
				adaptor.addChild(root_1, stream_value.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "index_component"


	public static class addressableAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "addressableAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:295:1: addressableAnnotation : ADDRESSABLE ( LBRAC ! SCHEME ! EQUAL ! ID ( LBRAC ! ( TRUE | FALSE ) RBRAC !)? RBRAC !) ;
	public final TParser.addressableAnnotation_return addressableAnnotation() throws RecognitionException {
		TParser.addressableAnnotation_return retval = new TParser.addressableAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token ADDRESSABLE134=null;
		Token LBRAC135=null;
		Token SCHEME136=null;
		Token EQUAL137=null;
		Token ID138=null;
		Token LBRAC139=null;
		Token set140=null;
		Token RBRAC141=null;
		Token RBRAC142=null;

		CommonTree ADDRESSABLE134_tree=null;
		CommonTree LBRAC135_tree=null;
		CommonTree SCHEME136_tree=null;
		CommonTree EQUAL137_tree=null;
		CommonTree ID138_tree=null;
		CommonTree LBRAC139_tree=null;
		CommonTree set140_tree=null;
		CommonTree RBRAC141_tree=null;
		CommonTree RBRAC142_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:297:5: ( ADDRESSABLE ( LBRAC ! SCHEME ! EQUAL ! ID ( LBRAC ! ( TRUE | FALSE ) RBRAC !)? RBRAC !) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:297:7: ADDRESSABLE ( LBRAC ! SCHEME ! EQUAL ! ID ( LBRAC ! ( TRUE | FALSE ) RBRAC !)? RBRAC !)
			{
			root_0 = (CommonTree)adaptor.nil();


			ADDRESSABLE134=(Token)match(input,ADDRESSABLE,FOLLOW_ADDRESSABLE_in_addressableAnnotation4968); 
			ADDRESSABLE134_tree = (CommonTree)adaptor.create(ADDRESSABLE134);
			adaptor.addChild(root_0, ADDRESSABLE134_tree);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:297:19: ( LBRAC ! SCHEME ! EQUAL ! ID ( LBRAC ! ( TRUE | FALSE ) RBRAC !)? RBRAC !)
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:297:20: LBRAC ! SCHEME ! EQUAL ! ID ( LBRAC ! ( TRUE | FALSE ) RBRAC !)? RBRAC !
			{
			LBRAC135=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_addressableAnnotation4971); 
			SCHEME136=(Token)match(input,SCHEME,FOLLOW_SCHEME_in_addressableAnnotation4974); 
			EQUAL137=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_addressableAnnotation4977); 
			ID138=(Token)match(input,ID,FOLLOW_ID_in_addressableAnnotation4980); 
			ID138_tree = (CommonTree)adaptor.create(ID138);
			adaptor.addChild(root_0, ID138_tree);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:297:45: ( LBRAC ! ( TRUE | FALSE ) RBRAC !)?
			int alt31=2;
			int LA31_0 = input.LA(1);
			if ( (LA31_0==LBRAC) ) {
				alt31=1;
			}
			switch (alt31) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:297:46: LBRAC ! ( TRUE | FALSE ) RBRAC !
					{
					LBRAC139=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_addressableAnnotation4983); 
					set140=input.LT(1);
					if ( input.LA(1)==FALSE||input.LA(1)==TRUE ) {
						input.consume();
						adaptor.addChild(root_0, (CommonTree)adaptor.create(set140));
						state.errorRecovery=false;
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						throw mse;
					}
					RBRAC141=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_addressableAnnotation4992); 
					}
					break;

			}

			RBRAC142=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_addressableAnnotation4997); 
			}

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "addressableAnnotation"


	public static class storableAnnotation_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "storableAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:300:1: storableAnnotation : STORABLE LBRAC ! storagePath ( COMMA ! storableAnnotationField )* RBRAC !;
	public final TParser.storableAnnotation_return storableAnnotation() throws RecognitionException {
		TParser.storableAnnotation_return retval = new TParser.storableAnnotation_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token STORABLE143=null;
		Token LBRAC144=null;
		Token COMMA146=null;
		Token RBRAC148=null;
		ParserRuleReturnScope storagePath145 =null;
		ParserRuleReturnScope storableAnnotationField147 =null;

		CommonTree STORABLE143_tree=null;
		CommonTree LBRAC144_tree=null;
		CommonTree COMMA146_tree=null;
		CommonTree RBRAC148_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:302:5: ( STORABLE LBRAC ! storagePath ( COMMA ! storableAnnotationField )* RBRAC !)
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:302:7: STORABLE LBRAC ! storagePath ( COMMA ! storableAnnotationField )* RBRAC !
			{
			root_0 = (CommonTree)adaptor.nil();


			STORABLE143=(Token)match(input,STORABLE,FOLLOW_STORABLE_in_storableAnnotation5017); 
			STORABLE143_tree = (CommonTree)adaptor.create(STORABLE143);
			adaptor.addChild(root_0, STORABLE143_tree);

			LBRAC144=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_storableAnnotation5019); 
			pushFollow(FOLLOW_storagePath_in_storableAnnotation5022);
			storagePath145=storagePath();
			state._fsp--;

			adaptor.addChild(root_0, storagePath145.getTree());

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:302:35: ( COMMA ! storableAnnotationField )*
			loop32:
			while (true) {
				int alt32=2;
				int LA32_0 = input.LA(1);
				if ( (LA32_0==COMMA) ) {
					alt32=1;
				}

				switch (alt32) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:302:36: COMMA ! storableAnnotationField
					{
					COMMA146=(Token)match(input,COMMA,FOLLOW_COMMA_in_storableAnnotation5025); 
					pushFollow(FOLLOW_storableAnnotationField_in_storableAnnotation5028);
					storableAnnotationField147=storableAnnotationField();
					state._fsp--;

					adaptor.addChild(root_0, storableAnnotationField147.getTree());

					}
					break;

				default :
					break loop32;
				}
			}

			RBRAC148=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_storableAnnotation5033); 
			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "storableAnnotation"


	protected static class storableAnnotationField_scope {
		boolean isSeparator;
		boolean isEncoding;
		boolean isTtlDays;
		boolean isPrefix;
		boolean isRepoName;
	}
	protected Stack storableAnnotationField_stack = new Stack();

	public static class storableAnnotationField_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "storableAnnotationField"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:305:1: storableAnnotationField : operator= ID EQUAL value= ( STRING | INT | ID ) -> {$storableAnnotationField::isSeparator}? ^( STORABLE_SEPARATOR $value) -> {$storableAnnotationField::isEncoding}? ^( STORABLE_ENCODING $value) -> {$storableAnnotationField::isPrefix}? ^( STORABLE_PREFIX $value) -> {$storableAnnotationField::isRepoName}? ^( STORABLE_REPO_NAME $value) -> ^( STORABLE_TTL_DAYS $value) ;
	public final TParser.storableAnnotationField_return storableAnnotationField() throws RecognitionException {
		storableAnnotationField_stack.push(new storableAnnotationField_scope());
		TParser.storableAnnotationField_return retval = new TParser.storableAnnotationField_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token operator=null;
		Token value=null;
		Token EQUAL149=null;

		CommonTree operator_tree=null;
		CommonTree value_tree=null;
		CommonTree EQUAL149_tree=null;
		RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
		RewriteRuleTokenStream stream_STRING=new RewriteRuleTokenStream(adaptor,"token STRING");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleTokenStream stream_INT=new RewriteRuleTokenStream(adaptor,"token INT");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:314:5: (operator= ID EQUAL value= ( STRING | INT | ID ) -> {$storableAnnotationField::isSeparator}? ^( STORABLE_SEPARATOR $value) -> {$storableAnnotationField::isEncoding}? ^( STORABLE_ENCODING $value) -> {$storableAnnotationField::isPrefix}? ^( STORABLE_PREFIX $value) -> {$storableAnnotationField::isRepoName}? ^( STORABLE_REPO_NAME $value) -> ^( STORABLE_TTL_DAYS $value) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:314:7: operator= ID EQUAL value= ( STRING | INT | ID )
			{
			operator=(Token)match(input,ID,FOLLOW_ID_in_storableAnnotationField5063);  
			stream_ID.add(operator);


			        if ("separator".equals((operator!=null?operator.getText():null))) {
			          storableAnnotationField_stack.peek().isSeparator = true;
			        } else if ("encoding".equals((operator!=null?operator.getText():null))) {
			          storableAnnotationField_stack.peek().isEncoding = true;
			        } else if ("ttlDays".equals((operator!=null?operator.getText():null))) {
			          storableAnnotationField_stack.peek().isTtlDays = true;
			        } else if ("prefix".equals((operator!=null?operator.getText():null))) {
			          storableAnnotationField_stack.peek().isPrefix = true;
			        } else if ("repoName".equals((operator!=null?operator.getText():null))) {
			          storableAnnotationField_stack.peek().isRepoName = true;
			        } else {
			         throw new IllegalArgumentException(
			                String.format("Error: Expecting 'separator', 'encoding', 'ttlDays', 'prefix', or 'repoName' but found '%s' at %s:%s", (operator!=null?operator.getText():null), (operator!=null?operator.getLine():0), operator.getCharPositionInLine()));
			        }
			      
			EQUAL149=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_storableAnnotationField5073);  
			stream_EQUAL.add(EQUAL149);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:330:19: ( STRING | INT | ID )
			int alt33=3;
			switch ( input.LA(1) ) {
			case STRING:
				{
				alt33=1;
				}
				break;
			case INT:
				{
				alt33=2;
				}
				break;
			case ID:
				{
				alt33=3;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 33, 0, input);
				throw nvae;
			}
			switch (alt33) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:330:20: STRING
					{
					value=(Token)match(input,STRING,FOLLOW_STRING_in_storableAnnotationField5078);  
					stream_STRING.add(value);

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:330:27: INT
					{
					value=(Token)match(input,INT,FOLLOW_INT_in_storableAnnotationField5080);  
					stream_INT.add(value);

					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:330:31: ID
					{
					value=(Token)match(input,ID,FOLLOW_ID_in_storableAnnotationField5082);  
					stream_ID.add(value);

					}
					break;

			}

			// AST REWRITE
			// elements: value, value, value, value, value
			// token labels: value
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_value=new RewriteRuleTokenStream(adaptor,"token value",value);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 331:7: -> {$storableAnnotationField::isSeparator}? ^( STORABLE_SEPARATOR $value)
			if (storableAnnotationField_stack.peek().isSeparator) {
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:331:51: ^( STORABLE_SEPARATOR $value)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STORABLE_SEPARATOR, "STORABLE_SEPARATOR"), root_1);
				adaptor.addChild(root_1, stream_value.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}

			else // 332:7: -> {$storableAnnotationField::isEncoding}? ^( STORABLE_ENCODING $value)
			if (storableAnnotationField_stack.peek().isEncoding) {
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:332:50: ^( STORABLE_ENCODING $value)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STORABLE_ENCODING, "STORABLE_ENCODING"), root_1);
				adaptor.addChild(root_1, stream_value.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}

			else // 333:7: -> {$storableAnnotationField::isPrefix}? ^( STORABLE_PREFIX $value)
			if (storableAnnotationField_stack.peek().isPrefix) {
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:333:48: ^( STORABLE_PREFIX $value)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STORABLE_PREFIX, "STORABLE_PREFIX"), root_1);
				adaptor.addChild(root_1, stream_value.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}

			else // 334:7: -> {$storableAnnotationField::isRepoName}? ^( STORABLE_REPO_NAME $value)
			if (storableAnnotationField_stack.peek().isRepoName) {
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:334:50: ^( STORABLE_REPO_NAME $value)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STORABLE_REPO_NAME, "STORABLE_REPO_NAME"), root_1);
				adaptor.addChild(root_1, stream_value.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}

			else // 335:7: -> ^( STORABLE_TTL_DAYS $value)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:335:10: ^( STORABLE_TTL_DAYS $value)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STORABLE_TTL_DAYS, "STORABLE_TTL_DAYS"), root_1);
				adaptor.addChild(root_1, stream_value.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
			storableAnnotationField_stack.pop();
		}
		return retval;
	}
	// $ANTLR end "storableAnnotationField"


	public static class storagePath_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "storagePath"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:338:1: storagePath : ( STORAGE_PATH ! COLUMN ! LPAREN ! storagePathAdder ( COMMA ! storagePathAdder )* RPAREN !) ;
	public final TParser.storagePath_return storagePath() throws RecognitionException {
		TParser.storagePath_return retval = new TParser.storagePath_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token STORAGE_PATH150=null;
		Token COLUMN151=null;
		Token LPAREN152=null;
		Token COMMA154=null;
		Token RPAREN156=null;
		ParserRuleReturnScope storagePathAdder153 =null;
		ParserRuleReturnScope storagePathAdder155 =null;

		CommonTree STORAGE_PATH150_tree=null;
		CommonTree COLUMN151_tree=null;
		CommonTree LPAREN152_tree=null;
		CommonTree COMMA154_tree=null;
		CommonTree RPAREN156_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:339:5: ( ( STORAGE_PATH ! COLUMN ! LPAREN ! storagePathAdder ( COMMA ! storagePathAdder )* RPAREN !) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:339:7: ( STORAGE_PATH ! COLUMN ! LPAREN ! storagePathAdder ( COMMA ! storagePathAdder )* RPAREN !)
			{
			root_0 = (CommonTree)adaptor.nil();


			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:339:7: ( STORAGE_PATH ! COLUMN ! LPAREN ! storagePathAdder ( COMMA ! storagePathAdder )* RPAREN !)
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:339:8: STORAGE_PATH ! COLUMN ! LPAREN ! storagePathAdder ( COMMA ! storagePathAdder )* RPAREN !
			{
			STORAGE_PATH150=(Token)match(input,STORAGE_PATH,FOLLOW_STORAGE_PATH_in_storagePath5184); 
			COLUMN151=(Token)match(input,COLUMN,FOLLOW_COLUMN_in_storagePath5187); 
			LPAREN152=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_storagePath5190); 
			pushFollow(FOLLOW_storagePathAdder_in_storagePath5193);
			storagePathAdder153=storagePathAdder();
			state._fsp--;

			adaptor.addChild(root_0, storagePathAdder153.getTree());

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:339:55: ( COMMA ! storagePathAdder )*
			loop34:
			while (true) {
				int alt34=2;
				int LA34_0 = input.LA(1);
				if ( (LA34_0==COMMA) ) {
					alt34=1;
				}

				switch (alt34) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:339:56: COMMA ! storagePathAdder
					{
					COMMA154=(Token)match(input,COMMA,FOLLOW_COMMA_in_storagePath5196); 
					pushFollow(FOLLOW_storagePathAdder_in_storagePath5199);
					storagePathAdder155=storagePathAdder();
					state._fsp--;

					adaptor.addChild(root_0, storagePathAdder155.getTree());

					}
					break;

				default :
					break loop34;
				}
			}

			RPAREN156=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_storagePath5203); 
			}

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "storagePath"


	public static class storagePathAdder_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "storagePathAdder"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:342:1: storagePathAdder : value= ( ID | STRING ) -> ^( STORAGE_PATH_ADDER $value) ;
	public final TParser.storagePathAdder_return storagePathAdder() throws RecognitionException {
		TParser.storagePathAdder_return retval = new TParser.storagePathAdder_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token value=null;

		CommonTree value_tree=null;
		RewriteRuleTokenStream stream_STRING=new RewriteRuleTokenStream(adaptor,"token STRING");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:343:5: (value= ( ID | STRING ) -> ^( STORAGE_PATH_ADDER $value) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:343:7: value= ( ID | STRING )
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:343:13: ( ID | STRING )
			int alt35=2;
			int LA35_0 = input.LA(1);
			if ( (LA35_0==ID) ) {
				alt35=1;
			}
			else if ( (LA35_0==STRING) ) {
				alt35=2;
			}

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

			switch (alt35) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:343:14: ID
					{
					value=(Token)match(input,ID,FOLLOW_ID_in_storagePathAdder5225);  
					stream_ID.add(value);

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:343:17: STRING
					{
					value=(Token)match(input,STRING,FOLLOW_STRING_in_storagePathAdder5227);  
					stream_STRING.add(value);

					}
					break;

			}

			// AST REWRITE
			// elements: value
			// token labels: value
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_value=new RewriteRuleTokenStream(adaptor,"token value",value);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 343:25: -> ^( STORAGE_PATH_ADDER $value)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:343:28: ^( STORAGE_PATH_ADDER $value)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(STORAGE_PATH_ADDER, "STORAGE_PATH_ADDER"), root_1);
				adaptor.addChild(root_1, stream_value.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "storagePathAdder"


	public static class typeFields_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "typeFields"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:346:1: typeFields : LPAREN ( typeFieldDef )* RPAREN -> ^( TYPEFIELDS ( typeFieldDef )* ) ;
	public final TParser.typeFields_return typeFields() throws RecognitionException {
		TParser.typeFields_return retval = new TParser.typeFields_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token LPAREN157=null;
		Token RPAREN159=null;
		ParserRuleReturnScope typeFieldDef158 =null;

		CommonTree LPAREN157_tree=null;
		CommonTree RPAREN159_tree=null;
		RewriteRuleTokenStream stream_LPAREN=new RewriteRuleTokenStream(adaptor,"token LPAREN");
		RewriteRuleTokenStream stream_RPAREN=new RewriteRuleTokenStream(adaptor,"token RPAREN");
		RewriteRuleSubtreeStream stream_typeFieldDef=new RewriteRuleSubtreeStream(adaptor,"rule typeFieldDef");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:346:12: ( LPAREN ( typeFieldDef )* RPAREN -> ^( TYPEFIELDS ( typeFieldDef )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:347:5: LPAREN ( typeFieldDef )* RPAREN
			{
			LPAREN157=(Token)match(input,LPAREN,FOLLOW_LPAREN_in_typeFields5254);  
			stream_LPAREN.add(LPAREN157);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:347:12: ( typeFieldDef )*
			loop36:
			while (true) {
				int alt36=2;
				int LA36_0 = input.LA(1);
				if ( ((LA36_0 >= BOOLTYPE && LA36_0 <= BYTEARRAYTYPE)||LA36_0==DATETYPE||LA36_0==DOUBLETYPE||LA36_0==ID||LA36_0==INTTYPE||(LA36_0 >= LISTTYPE && LA36_0 <= LONGTYPE)||LA36_0==MAPTYPE||LA36_0==OBJECTTYPE||LA36_0==SETTYPE||LA36_0==STRINGTYPE||LA36_0==VOIDTYPE||LA36_0==CLASSTYPE) ) {
					alt36=1;
				}

				switch (alt36) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:347:12: typeFieldDef
					{
					pushFollow(FOLLOW_typeFieldDef_in_typeFields5256);
					typeFieldDef158=typeFieldDef();
					state._fsp--;

					stream_typeFieldDef.add(typeFieldDef158.getTree());
					}
					break;

				default :
					break loop36;
				}
			}

			RPAREN159=(Token)match(input,RPAREN,FOLLOW_RPAREN_in_typeFields5259);  
			stream_RPAREN.add(RPAREN159);

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

			root_0 = (CommonTree)adaptor.nil();
			// 347:33: -> ^( TYPEFIELDS ( typeFieldDef )* )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:347:36: ^( TYPEFIELDS ( typeFieldDef )* )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEFIELDS, "TYPEFIELDS"), root_1);
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:347:49: ( typeFieldDef )*
				while ( stream_typeFieldDef.hasNext() ) {
					adaptor.addChild(root_1, stream_typeFieldDef.nextTree());
				}
				stream_typeFieldDef.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "typeFields"


	public static class typeFieldDef_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "typeFieldDef"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:349:1: typeFieldDef : vartype n= ID ( fieldConstructor )? SEMI -> ^( TYPEMEMBER ^( TYPE vartype ) ^( NAME $n) ^( FIELD_CONSTRUCTOR ( fieldConstructor )? ) ) ;
	public final TParser.typeFieldDef_return typeFieldDef() throws RecognitionException {
		TParser.typeFieldDef_return retval = new TParser.typeFieldDef_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token n=null;
		Token SEMI162=null;
		ParserRuleReturnScope vartype160 =null;
		ParserRuleReturnScope fieldConstructor161 =null;

		CommonTree n_tree=null;
		CommonTree SEMI162_tree=null;
		RewriteRuleTokenStream stream_SEMI=new RewriteRuleTokenStream(adaptor,"token SEMI");
		RewriteRuleTokenStream stream_ID=new RewriteRuleTokenStream(adaptor,"token ID");
		RewriteRuleSubtreeStream stream_vartype=new RewriteRuleSubtreeStream(adaptor,"rule vartype");
		RewriteRuleSubtreeStream stream_fieldConstructor=new RewriteRuleSubtreeStream(adaptor,"rule fieldConstructor");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:349:14: ( vartype n= ID ( fieldConstructor )? SEMI -> ^( TYPEMEMBER ^( TYPE vartype ) ^( NAME $n) ^( FIELD_CONSTRUCTOR ( fieldConstructor )? ) ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:350:5: vartype n= ID ( fieldConstructor )? SEMI
			{
			pushFollow(FOLLOW_vartype_in_typeFieldDef5284);
			vartype160=vartype();
			state._fsp--;

			stream_vartype.add(vartype160.getTree());
			n=(Token)match(input,ID,FOLLOW_ID_in_typeFieldDef5288);  
			stream_ID.add(n);

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:350:18: ( fieldConstructor )?
			int alt37=2;
			int LA37_0 = input.LA(1);
			if ( (LA37_0==EQUAL) ) {
				alt37=1;
			}
			switch (alt37) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:350:18: fieldConstructor
					{
					pushFollow(FOLLOW_fieldConstructor_in_typeFieldDef5290);
					fieldConstructor161=fieldConstructor();
					state._fsp--;

					stream_fieldConstructor.add(fieldConstructor161.getTree());
					}
					break;

			}

			SEMI162=(Token)match(input,SEMI,FOLLOW_SEMI_in_typeFieldDef5293);  
			stream_SEMI.add(SEMI162);

			// AST REWRITE
			// elements: vartype, n, fieldConstructor
			// token labels: n
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_n=new RewriteRuleTokenStream(adaptor,"token n",n);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 350:41: -> ^( TYPEMEMBER ^( TYPE vartype ) ^( NAME $n) ^( FIELD_CONSTRUCTOR ( fieldConstructor )? ) )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:350:44: ^( TYPEMEMBER ^( TYPE vartype ) ^( NAME $n) ^( FIELD_CONSTRUCTOR ( fieldConstructor )? ) )
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEMEMBER, "TYPEMEMBER"), root_1);
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:350:57: ^( TYPE vartype )
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPE, "TYPE"), root_2);
				adaptor.addChild(root_2, stream_vartype.nextTree());
				adaptor.addChild(root_1, root_2);
				}

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:350:73: ^( NAME $n)
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(NAME, "NAME"), root_2);
				adaptor.addChild(root_2, stream_n.nextNode());
				adaptor.addChild(root_1, root_2);
				}

				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:350:84: ^( FIELD_CONSTRUCTOR ( fieldConstructor )? )
				{
				CommonTree root_2 = (CommonTree)adaptor.nil();
				root_2 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(FIELD_CONSTRUCTOR, "FIELD_CONSTRUCTOR"), root_2);
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:350:104: ( fieldConstructor )?
				if ( stream_fieldConstructor.hasNext() ) {
					adaptor.addChild(root_2, stream_fieldConstructor.nextTree());
				}
				stream_fieldConstructor.reset();

				adaptor.addChild(root_1, root_2);
				}

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "typeFieldDef"


	public static class fieldConstructor_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "fieldConstructor"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:352:1: fieldConstructor : EQUAL ! ( . )+ ;
	public final TParser.fieldConstructor_return fieldConstructor() throws RecognitionException {
		TParser.fieldConstructor_return retval = new TParser.fieldConstructor_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token EQUAL163=null;
		Token wildcard164=null;

		CommonTree EQUAL163_tree=null;
		CommonTree wildcard164_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:353:5: ( EQUAL ! ( . )+ )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:353:7: EQUAL ! ( . )+
			{
			root_0 = (CommonTree)adaptor.nil();


			EQUAL163=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_fieldConstructor5331); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:353:14: ( . )+
			int cnt38=0;
			loop38:
			while (true) {
				int alt38=2;
				int LA38_0 = input.LA(1);
				if ( (LA38_0==SEMI) ) {
					alt38=2;
				}
				else if ( ((LA38_0 >= ADDRESSABLE && LA38_0 <= SDKNAME)||(LA38_0 >= SETTYPE && LA38_0 <= VISIBILITY)) ) {
					alt38=1;
				}

				switch (alt38) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:353:14: .
					{
					wildcard164=input.LT(1);
					matchAny(input); 
					wildcard164_tree = (CommonTree)adaptor.create(wildcard164);
					adaptor.addChild(root_0, wildcard164_tree);

					}
					break;

				default :
					if ( cnt38 >= 1 ) break loop38;
					EarlyExitException eee = new EarlyExitException(38, input);
					throw eee;
				}
				cnt38++;
			}

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "fieldConstructor"


	public static class typeAspect_return extends ParserRuleReturnScope {
		CommonTree tree;
		@Override
		public CommonTree getTree() { return tree; }
	};


	// $ANTLR start "typeAspect"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:356:1: typeAspect : LBRAC PACKAGE EQUAL packageid= PACKAGENAME RBRAC -> ^( TYPEASPECT $packageid) ;
	public final TParser.typeAspect_return typeAspect() throws RecognitionException {
		TParser.typeAspect_return retval = new TParser.typeAspect_return();
		retval.start = input.LT(1);

		CommonTree root_0 = null;

		Token packageid=null;
		Token LBRAC165=null;
		Token PACKAGE166=null;
		Token EQUAL167=null;
		Token RBRAC168=null;

		CommonTree packageid_tree=null;
		CommonTree LBRAC165_tree=null;
		CommonTree PACKAGE166_tree=null;
		CommonTree EQUAL167_tree=null;
		CommonTree RBRAC168_tree=null;
		RewriteRuleTokenStream stream_LBRAC=new RewriteRuleTokenStream(adaptor,"token LBRAC");
		RewriteRuleTokenStream stream_PACKAGE=new RewriteRuleTokenStream(adaptor,"token PACKAGE");
		RewriteRuleTokenStream stream_EQUAL=new RewriteRuleTokenStream(adaptor,"token EQUAL");
		RewriteRuleTokenStream stream_RBRAC=new RewriteRuleTokenStream(adaptor,"token RBRAC");
		RewriteRuleTokenStream stream_PACKAGENAME=new RewriteRuleTokenStream(adaptor,"token PACKAGENAME");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:356:13: ( LBRAC PACKAGE EQUAL packageid= PACKAGENAME RBRAC -> ^( TYPEASPECT $packageid) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:357:13: LBRAC PACKAGE EQUAL packageid= PACKAGENAME RBRAC
			{
			LBRAC165=(Token)match(input,LBRAC,FOLLOW_LBRAC_in_typeAspect5366);  
			stream_LBRAC.add(LBRAC165);

			PACKAGE166=(Token)match(input,PACKAGE,FOLLOW_PACKAGE_in_typeAspect5368);  
			stream_PACKAGE.add(PACKAGE166);

			EQUAL167=(Token)match(input,EQUAL,FOLLOW_EQUAL_in_typeAspect5370);  
			stream_EQUAL.add(EQUAL167);

			packageid=(Token)match(input,PACKAGENAME,FOLLOW_PACKAGENAME_in_typeAspect5374);  
			stream_PACKAGENAME.add(packageid);

			RBRAC168=(Token)match(input,RBRAC,FOLLOW_RBRAC_in_typeAspect5376);  
			stream_RBRAC.add(RBRAC168);

			// AST REWRITE
			// elements: packageid
			// token labels: packageid
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleTokenStream stream_packageid=new RewriteRuleTokenStream(adaptor,"token packageid",packageid);
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (CommonTree)adaptor.nil();
			// 357:61: -> ^( TYPEASPECT $packageid)
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TParser.g:357:64: ^( TYPEASPECT $packageid)
				{
				CommonTree root_1 = (CommonTree)adaptor.nil();
				root_1 = (CommonTree)adaptor.becomeRoot((CommonTree)adaptor.create(TYPEASPECT, "TYPEASPECT"), root_1);
				adaptor.addChild(root_1, stream_packageid.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

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

			retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
			retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);
		}
		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "typeAspect"

	// Delegated rules


	protected DFA3 dfa3 = new DFA3(this);
	static final String DFA3_eotS =
		"\103\uffff";
	static final String DFA3_eofS =
		"\103\uffff";
	static final String DFA3_minS =
		"\1\24\1\5\1\4\3\uffff\1\31\2\6\4\42\1\35\1\4\1\35\1\72\1\64\1\56\1\35"+
		"\1\61\1\42\1\31\1\15\1\31\1\35\1\15\1\6\1\33\1\46\1\35\1\61\1\74\1\61"+
		"\1\35\1\42\1\6\1\16\1\6\2\16\1\33\1\6\2\35\1\16\1\61\1\15\2\16\1\35\1"+
		"\6\1\61\1\46\1\31\2\35\5\16\1\35\1\61\2\16\1\6";
	static final String DFA3_maxS =
		"\1\24\1\77\1\71\3\uffff\1\42\2\77\4\42\1\74\1\71\1\35\1\72\1\64\1\56\1"+
		"\35\1\61\1\42\1\31\1\15\1\31\1\35\1\15\1\77\1\76\1\46\1\35\1\61\1\74\1"+
		"\61\1\74\1\61\1\77\1\16\1\77\2\63\1\76\1\77\1\35\1\74\2\61\1\15\2\63\1"+
		"\35\1\77\1\61\1\46\1\31\2\74\2\63\3\61\1\74\1\61\2\63\1\77";
	static final String DFA3_acceptS =
		"\3\uffff\1\1\1\2\1\3\75\uffff";
	static final String DFA3_specialS =
		"\103\uffff}>";
	static final String[] DFA3_transitionS = {
			"\1\1",
			"\1\5\1\2\11\uffff\1\4\34\uffff\1\4\21\uffff\1\3",
			"\1\12\3\uffff\1\7\2\uffff\1\10\7\uffff\1\6\6\uffff\1\13\4\uffff\1\14"+
			"\31\uffff\1\11",
			"",
			"",
			"",
			"\1\5\10\uffff\1\15",
			"\1\16\11\uffff\1\4\34\uffff\1\4\21\uffff\1\3",
			"\1\16\11\uffff\1\4\21\uffff\1\17\12\uffff\1\4\21\uffff\1\3",
			"\1\20",
			"\1\21",
			"\1\22",
			"\1\23",
			"\1\24\36\uffff\1\24",
			"\1\12\3\uffff\1\7\2\uffff\1\10\7\uffff\1\25\6\uffff\1\13\4\uffff\1\14"+
			"\31\uffff\1\11",
			"\1\26",
			"\1\27",
			"\1\30",
			"\1\31",
			"\1\32",
			"\1\33",
			"\1\15",
			"\1\34",
			"\1\35",
			"\1\36",
			"\1\37",
			"\1\40",
			"\1\16\11\uffff\1\4\34\uffff\1\4\21\uffff\1\3",
			"\1\41\42\uffff\1\41",
			"\1\42",
			"\1\43",
			"\1\44",
			"\1\45",
			"\1\46",
			"\1\47\36\uffff\1\50",
			"\1\51\16\uffff\1\52",
			"\1\16\11\uffff\1\4\34\uffff\1\4\21\uffff\1\3",
			"\1\53",
			"\1\16\11\uffff\1\4\34\uffff\1\4\21\uffff\1\3",
			"\1\54\44\uffff\1\55",
			"\1\54\44\uffff\1\55",
			"\1\56\42\uffff\1\56",
			"\1\16\11\uffff\1\4\34\uffff\1\4\21\uffff\1\3",
			"\1\57",
			"\1\60\36\uffff\1\61",
			"\1\62\42\uffff\1\63",
			"\1\64",
			"\1\65",
			"\1\54\44\uffff\1\55",
			"\1\54\44\uffff\1\55",
			"\1\66",
			"\1\16\11\uffff\1\4\34\uffff\1\4\21\uffff\1\3",
			"\1\52",
			"\1\67",
			"\1\70",
			"\1\71\36\uffff\1\72",
			"\1\75\2\uffff\1\74\33\uffff\1\73",
			"\1\76\44\uffff\1\77",
			"\1\76\44\uffff\1\77",
			"\1\62\42\uffff\1\63",
			"\1\62\42\uffff\1\63",
			"\1\62\42\uffff\1\63",
			"\1\100\36\uffff\1\101",
			"\1\102",
			"\1\76\44\uffff\1\77",
			"\1\76\44\uffff\1\77",
			"\1\16\11\uffff\1\4\34\uffff\1\4\21\uffff\1\3"
	};

	static final short[] DFA3_eot = DFA.unpackEncodedString(DFA3_eotS);
	static final short[] DFA3_eof = DFA.unpackEncodedString(DFA3_eofS);
	static final char[] DFA3_min = DFA.unpackEncodedStringToUnsignedChars(DFA3_minS);
	static final char[] DFA3_max = DFA.unpackEncodedStringToUnsignedChars(DFA3_maxS);
	static final short[] DFA3_accept = DFA.unpackEncodedString(DFA3_acceptS);
	static final short[] DFA3_special = DFA.unpackEncodedString(DFA3_specialS);
	static final short[][] DFA3_transition;

	static {
		int numStates = DFA3_transitionS.length;
		DFA3_transition = new short[numStates][];
		for (int i=0; i ^( INNERT typeExpr ) | crudTypeExpr -> ^( INNERT ^( TYPEDEF DOC[\"[Type doc]\"] ID[$crudTypeExpr.name] ^( TYPEASPECT PACKAGENAME[\"rapture.common\"] ) ^( TYPEFIELDS ^( TYPEMEMBER ^( TYPE ^( RAW STRINGTYPE[\"Test\"] ) ) ^( NAME ID[\"Hello\"] ) ^( FIELD_CONSTRUCTOR ) ) ) ) ) ^( INNERC crudTypeExpr ) ^( INNERA ^( APISEC DOC[\"[Hello]\"] ID[$crudTypeExpr.name] ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"get\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( RAW BOOLTYPE[\"Boolean\"] ) ) ^( FNNAME ID[\"delete\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"uri\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( FNNAME ID[\"put\" + $crudTypeExpr.name] ) ^( PARAMS ^( PARAM ^( TYPE ^( COMPLEX ID[$crudTypeExpr.name] ) ) ^( NAME ID[\"content\"] ) ) ) ) ^( APIENTRY DOC[\"[Some doc]\"] ^( ENTITLEASPECT REGULARENTITLE[\"/admin/main\"] ) ^( VISIBILITY PUBLICVIS ) ^( RETTYPE ^( LISTTYPE ^( COMPLEX ID[\"RaptureFolderInfo\"] ) ) ) ^( FNNAME ID[\"getChildren\"] ) ^( PARAMS ^( PARAM ^( TYPE ^( RAW STRINGTYPE[\"String\"] ) ) ^( NAME ID[\"prefix\"] ) ) ) ) ) ) | apiExpr -> ^( INNERA apiExpr ) );";
		}
	}

	public static final BitSet FOLLOW_sdkExpr_in_hmxdef418 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_versionExpr_in_hmxdef421 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_minVerExpr_in_hmxdef423 = new BitSet(new long[]{0x0000000000100002L});
	public static final BitSet FOLLOW_innerExpr_in_hmxdef425 = new BitSet(new long[]{0x0000000000100002L});
	public static final BitSet FOLLOW_typeExpr_in_innerExpr452 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_crudTypeExpr_in_innerExpr478 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_apiExpr_in_innerExpr3200 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_SDKNAME_in_sdkExpr3224 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_sdkExpr3226 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_sdkExpr3230 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_sdkExpr3232 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_versionExpr3261 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_versionExpr3269 = new BitSet(new long[]{0x0000000100000000L});
	public static final BitSet FOLLOW_INT_in_versionExpr3273 = new BitSet(new long[]{0x0000000000200000L});
	public static final BitSet FOLLOW_DOT_in_versionExpr3275 = new BitSet(new long[]{0x0000000100000000L});
	public static final BitSet FOLLOW_INT_in_versionExpr3279 = new BitSet(new long[]{0x0002000000200000L});
	public static final BitSet FOLLOW_DOT_in_versionExpr3282 = new BitSet(new long[]{0x0000000100000000L});
	public static final BitSet FOLLOW_INT_in_versionExpr3286 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_versionExpr3290 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_minVerExpr3329 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_minVerExpr3337 = new BitSet(new long[]{0x0000000100000000L});
	public static final BitSet FOLLOW_INT_in_minVerExpr3341 = new BitSet(new long[]{0x0000000000200000L});
	public static final BitSet FOLLOW_DOT_in_minVerExpr3343 = new BitSet(new long[]{0x0000000100000000L});
	public static final BitSet FOLLOW_INT_in_minVerExpr3347 = new BitSet(new long[]{0x0002000000200000L});
	public static final BitSet FOLLOW_DOT_in_minVerExpr3350 = new BitSet(new long[]{0x0000000100000000L});
	public static final BitSet FOLLOW_INT_in_minVerExpr3354 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_minVerExpr3358 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DYNENT_in_dynList3390 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_dynList3393 = new BitSet(new long[]{0x0000000400800002L});
	public static final BitSet FOLLOW_LBRAC_in_dynList3396 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_dynList3399 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_dynList3401 = new BitSet(new long[]{0x0000000000800002L});
	public static final BitSet FOLLOW_REGULARENTITLE_in_regList3414 = new BitSet(new long[]{0x0004000000000002L});
	public static final BitSet FOLLOW_ENTITLE_in_entitleAspect3423 = new BitSet(new long[]{0x0000000002000000L});
	public static final BitSet FOLLOW_EQUAL_in_entitleAspect3425 = new BitSet(new long[]{0x0004000000000000L});
	public static final BitSet FOLLOW_regList_in_entitleAspect3429 = new BitSet(new long[]{0x0000000000800000L});
	public static final BitSet FOLLOW_dynList_in_entitleAspect3433 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_AT_in_deprecatedAspect3454 = new BitSet(new long[]{0x0000000000080000L});
	public static final BitSet FOLLOW_DEPRECATED_in_deprecatedAspect3457 = new BitSet(new long[]{0x0000000002000000L});
	public static final BitSet FOLLOW_EQUAL_in_deprecatedAspect3459 = new BitSet(new long[]{0x1000000020000000L});
	public static final BitSet FOLLOW_set_in_deprecatedAspect3462 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DOC_in_crudTypeExpr3489 = new BitSet(new long[]{0x0000200000010040L});
	public static final BitSet FOLLOW_typeAnnotation_in_crudTypeExpr3491 = new BitSet(new long[]{0x0000200000010040L});
	public static final BitSet FOLLOW_crudPackageAnnotation_in_crudTypeExpr3494 = new BitSet(new long[]{0x0000000000010000L});
	public static final BitSet FOLLOW_CRUDTYPED_in_crudTypeExpr3497 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_crudTypeExpr3501 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_crudTypeInfo_in_crudTypeExpr3505 = new BitSet(new long[]{0x0000004000000000L});
	public static final BitSet FOLLOW_typeFields_in_crudTypeExpr3507 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LBRAC_in_crudTypeInfo3547 = new BitSet(new long[]{0x0002000020000000L});
	public static final BitSet FOLLOW_crudDirective_in_crudTypeInfo3549 = new BitSet(new long[]{0x0002000020000000L});
	public static final BitSet FOLLOW_RBRAC_in_crudTypeInfo3552 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_crudDirective3587 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LPAREN_in_vardefs3630 = new BitSet(new long[]{0x2080093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_vardef_in_vardefs3632 = new BitSet(new long[]{0x2088093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_RPAREN_in_vardefs3635 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_vartype_in_vardef3669 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_vardef3673 = new BitSet(new long[]{0x0040000000000000L});
	public static final BitSet FOLLOW_SEMI_in_vardef3675 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_INTTYPE_in_vartype3709 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_STRINGTYPE_in_vartype3757 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_OBJECTTYPE_in_vartype3800 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DATETYPE_in_vartype3843 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LONGTYPE_in_vartype3881 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LONGCTYPE_in_vartype3926 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_BOOLTYPE_in_vartype3970 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DOUBLETYPE_in_vartype4015 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_BYTEARRAYTYPE_in_vartype4058 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_VOIDTYPE_in_vartype4098 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_generics1D_in_vartype4143 = new BitSet(new long[]{0x0000008400000000L});
	public static final BitSet FOLLOW_LBRAC_in_vartype4146 = new BitSet(new long[]{0x2080093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_L_THAN_in_vartype4148 = new BitSet(new long[]{0x2080093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_vartype_in_vartype4151 = new BitSet(new long[]{0x0002000010000000L});
	public static final BitSet FOLLOW_RBRAC_in_vartype4154 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_G_THAN_in_vartype4156 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_generics2D_in_vartype4181 = new BitSet(new long[]{0x0000008400000000L});
	public static final BitSet FOLLOW_LBRAC_in_vartype4184 = new BitSet(new long[]{0x2080093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_L_THAN_in_vartype4186 = new BitSet(new long[]{0x2080093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_vartype_in_vartype4191 = new BitSet(new long[]{0x0000000000004000L});
	public static final BitSet FOLLOW_COMMA_in_vartype4193 = new BitSet(new long[]{0x2080093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_vartype_in_vartype4197 = new BitSet(new long[]{0x0002000010000000L});
	public static final BitSet FOLLOW_RBRAC_in_vartype4200 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_G_THAN_in_vartype4202 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_vartype4233 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_MAPTYPE_in_generics2D4309 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DOC_in_apiExpr4328 = new BitSet(new long[]{0x0000000000000060L});
	public static final BitSet FOLLOW_deprecatedAspect_in_apiExpr4332 = new BitSet(new long[]{0x0000000000000020L});
	public static final BitSet FOLLOW_API_in_apiExpr4335 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_apiExpr4337 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_apiExpr4341 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_apiExpr4343 = new BitSet(new long[]{0x0000004000000000L});
	public static final BitSet FOLLOW_LPAREN_in_apiExpr4345 = new BitSet(new long[]{0x0008000000100000L});
	public static final BitSet FOLLOW_apistmt_in_apiExpr4347 = new BitSet(new long[]{0x0008000000100000L});
	public static final BitSet FOLLOW_RPAREN_in_apiExpr4350 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DOC_in_apistmt4393 = new BitSet(new long[]{0x0000000001000000L});
	public static final BitSet FOLLOW_entitleAspect_in_apistmt4397 = new BitSet(new long[]{0x0801800000000040L});
	public static final BitSet FOLLOW_deprecatedAspect_in_apistmt4401 = new BitSet(new long[]{0x0801800000000000L});
	public static final BitSet FOLLOW_STREAMING_in_apistmt4406 = new BitSet(new long[]{0x0001800000000000L});
	public static final BitSet FOLLOW_visibility_in_apistmt4409 = new BitSet(new long[]{0x2080093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_vartype_in_apistmt4411 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_apistmt4415 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_apistmt4417 = new BitSet(new long[]{0x2082093A20444600L,0x0000000000000011L});
	public static final BitSet FOLLOW_paramList_in_apistmt4419 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_apistmt4421 = new BitSet(new long[]{0x0040000000000000L});
	public static final BitSet FOLLOW_SEMI_in_apistmt4423 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_PRIVATE_in_visibility4472 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_PUBLIC_in_visibility4489 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_param_in_paramList4501 = new BitSet(new long[]{0x0000000000004002L});
	public static final BitSet FOLLOW_COMMA_in_paramList4505 = new BitSet(new long[]{0x2080093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_param_in_paramList4507 = new BitSet(new long[]{0x0000000000004002L});
	public static final BitSet FOLLOW_vartype_in_param4539 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_param4543 = new BitSet(new long[]{0x0000000000000082L});
	public static final BitSet FOLLOW_BANG_in_param4545 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DOC_in_typeExpr4605 = new BitSet(new long[]{0x8000000000000040L});
	public static final BitSet FOLLOW_typeAnnotation_in_typeExpr4607 = new BitSet(new long[]{0x8000000000000040L});
	public static final BitSet FOLLOW_TYPED_in_typeExpr4610 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_typeExpr4614 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_typeAspect_in_typeExpr4616 = new BitSet(new long[]{0x0000004000000000L});
	public static final BitSet FOLLOW_typeFields_in_typeExpr4619 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_AT_in_typeAnnotation4650 = new BitSet(new long[]{0x0200000084080910L});
	public static final BitSet FOLLOW_beanAnnotation_in_typeAnnotation4659 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_cacheableAnnotation_in_typeAnnotation4661 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_storableAnnotation_in_typeAnnotation4663 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_addressableAnnotation_in_typeAnnotation4665 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_extendsAnnotation_in_typeAnnotation4667 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_deprecatedAnnotation_in_typeAnnotation4669 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_indexedAnnotation_in_typeAnnotation4671 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_PACKAGE_in_crudPackageAnnotation4695 = new BitSet(new long[]{0x0000000002000000L});
	public static final BitSet FOLLOW_EQUAL_in_crudPackageAnnotation4697 = new BitSet(new long[]{0x0000400000000000L});
	public static final BitSet FOLLOW_PACKAGENAME_in_crudPackageAnnotation4699 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_BEAN_in_beanAnnotation4725 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_CACHEABLE_in_cacheableAnnotation4743 = new BitSet(new long[]{0x0000000400000002L});
	public static final BitSet FOLLOW_LBRAC_in_cacheableAnnotation4746 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_cacheableAnnotation4748 = new BitSet(new long[]{0x0000000002000000L});
	public static final BitSet FOLLOW_EQUAL_in_cacheableAnnotation4750 = new BitSet(new long[]{0x4000000008000000L});
	public static final BitSet FOLLOW_set_in_cacheableAnnotation4752 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_cacheableAnnotation4758 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_EXTENDS_in_extendsAnnotation4782 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_extendsAnnotation4784 = new BitSet(new long[]{0x0000400000000000L});
	public static final BitSet FOLLOW_PACKAGENAME_in_extendsAnnotation4787 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_extendsAnnotation4789 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_extendsAnnotation4791 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DEPRECATED_in_deprecatedAnnotation4811 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_deprecatedAnnotation4813 = new BitSet(new long[]{0x1000000020000000L});
	public static final BitSet FOLLOW_set_in_deprecatedAnnotation4816 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_deprecatedAnnotation4826 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_INDEXED_in_indexedAnnotation4845 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_indexedAnnotation4847 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_index_name_in_indexedAnnotation4850 = new BitSet(new long[]{0x0000000000004000L});
	public static final BitSet FOLLOW_COMMA_in_indexedAnnotation4852 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_indexedAnnotation4855 = new BitSet(new long[]{0x0000000000002000L});
	public static final BitSet FOLLOW_COLUMN_in_indexedAnnotation4867 = new BitSet(new long[]{0x0000004000000000L});
	public static final BitSet FOLLOW_LPAREN_in_indexedAnnotation4870 = new BitSet(new long[]{0x1000000020000000L});
	public static final BitSet FOLLOW_index_component_in_indexedAnnotation4873 = new BitSet(new long[]{0x0008000000004000L});
	public static final BitSet FOLLOW_COMMA_in_indexedAnnotation4876 = new BitSet(new long[]{0x1000000020000000L});
	public static final BitSet FOLLOW_index_component_in_indexedAnnotation4879 = new BitSet(new long[]{0x0008000000004000L});
	public static final BitSet FOLLOW_RPAREN_in_indexedAnnotation4883 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_indexedAnnotation4886 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_index_name4902 = new BitSet(new long[]{0x0000000000002000L});
	public static final BitSet FOLLOW_COLUMN_in_index_name4912 = new BitSet(new long[]{0x1000000000000000L});
	public static final BitSet FOLLOW_STRING_in_index_name4916 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_index_component4940 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_STRING_in_index_component4942 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ADDRESSABLE_in_addressableAnnotation4968 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_addressableAnnotation4971 = new BitSet(new long[]{0x0010000000000000L});
	public static final BitSet FOLLOW_SCHEME_in_addressableAnnotation4974 = new BitSet(new long[]{0x0000000002000000L});
	public static final BitSet FOLLOW_EQUAL_in_addressableAnnotation4977 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_addressableAnnotation4980 = new BitSet(new long[]{0x0002000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_addressableAnnotation4983 = new BitSet(new long[]{0x4000000008000000L});
	public static final BitSet FOLLOW_set_in_addressableAnnotation4986 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_addressableAnnotation4992 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_addressableAnnotation4997 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_STORABLE_in_storableAnnotation5017 = new BitSet(new long[]{0x0000000400000000L});
	public static final BitSet FOLLOW_LBRAC_in_storableAnnotation5019 = new BitSet(new long[]{0x0400000000000000L});
	public static final BitSet FOLLOW_storagePath_in_storableAnnotation5022 = new BitSet(new long[]{0x0002000000004000L});
	public static final BitSet FOLLOW_COMMA_in_storableAnnotation5025 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_storableAnnotationField_in_storableAnnotation5028 = new BitSet(new long[]{0x0002000000004000L});
	public static final BitSet FOLLOW_RBRAC_in_storableAnnotation5033 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_storableAnnotationField5063 = new BitSet(new long[]{0x0000000002000000L});
	public static final BitSet FOLLOW_EQUAL_in_storableAnnotationField5073 = new BitSet(new long[]{0x1000000120000000L});
	public static final BitSet FOLLOW_STRING_in_storableAnnotationField5078 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_INT_in_storableAnnotationField5080 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_storableAnnotationField5082 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_STORAGE_PATH_in_storagePath5184 = new BitSet(new long[]{0x0000000000002000L});
	public static final BitSet FOLLOW_COLUMN_in_storagePath5187 = new BitSet(new long[]{0x0000004000000000L});
	public static final BitSet FOLLOW_LPAREN_in_storagePath5190 = new BitSet(new long[]{0x1000000020000000L});
	public static final BitSet FOLLOW_storagePathAdder_in_storagePath5193 = new BitSet(new long[]{0x0008000000004000L});
	public static final BitSet FOLLOW_COMMA_in_storagePath5196 = new BitSet(new long[]{0x1000000020000000L});
	public static final BitSet FOLLOW_storagePathAdder_in_storagePath5199 = new BitSet(new long[]{0x0008000000004000L});
	public static final BitSet FOLLOW_RPAREN_in_storagePath5203 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_ID_in_storagePathAdder5225 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_STRING_in_storagePathAdder5227 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_LPAREN_in_typeFields5254 = new BitSet(new long[]{0x2088093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_typeFieldDef_in_typeFields5256 = new BitSet(new long[]{0x2088093A20440600L,0x0000000000000011L});
	public static final BitSet FOLLOW_RPAREN_in_typeFields5259 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_vartype_in_typeFieldDef5284 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_typeFieldDef5288 = new BitSet(new long[]{0x0040000002000000L});
	public static final BitSet FOLLOW_fieldConstructor_in_typeFieldDef5290 = new BitSet(new long[]{0x0040000000000000L});
	public static final BitSet FOLLOW_SEMI_in_typeFieldDef5293 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_EQUAL_in_fieldConstructor5331 = new BitSet(new long[]{0xFFFFFFFFFFFFFFF0L,0x0000FFFFFFFFFFFFL});
	public static final BitSet FOLLOW_LBRAC_in_typeAspect5366 = new BitSet(new long[]{0x0000200000000000L});
	public static final BitSet FOLLOW_PACKAGE_in_typeAspect5368 = new BitSet(new long[]{0x0000000002000000L});
	public static final BitSet FOLLOW_EQUAL_in_typeAspect5370 = new BitSet(new long[]{0x0000400000000000L});
	public static final BitSet FOLLOW_PACKAGENAME_in_typeAspect5374 = new BitSet(new long[]{0x0002000000000000L});
	public static final BitSet FOLLOW_RBRAC_in_typeAspect5376 = new BitSet(new long[]{0x0000000000000002L});
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy