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

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

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

    package com.incapture.rapgen;
    import java.util.Map;
    import java.util.HashMap;
    import com.incapture.rapgen.annotations.*;
    import com.incapture.apigen.slate.*;
    import com.incapture.apigen.slate.type.*;
	import com.incapture.apigen.slate.function.*;


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

import org.antlr.stringtemplate.*;
import org.antlr.stringtemplate.language.*;
import java.util.HashMap;
@SuppressWarnings("all")
public class TTreeSlateMd extends AbstractTTreeSlateMd {
	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", "112", "113", 
		"114", "115", "116", "117", "118", "119", "120", "121", "122", "123", 
		"124", "125", "126", "127", "128", "129", "130", "131", "132", "133", 
		"134", "135", "136", "137", "138", "139"
	};
	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 TTreeSlateMd_TTreeShared gTTreeShared;
	public AbstractTTreeSlateMd[] getDelegates() {
		return new AbstractTTreeSlateMd[] {gTTreeShared};
	}

	// delegators


	public TTreeSlateMd(TreeNodeStream input) {
		this(input, new RecognizerSharedState());
	}
	public TTreeSlateMd(TreeNodeStream input, RecognizerSharedState state) {
		super(input, state);
		gTTreeShared = new TTreeSlateMd_TTreeShared(input, state, this);
	}

	protected StringTemplateGroup templateLib =
	  new StringTemplateGroup("TTreeSlateMdTemplates", AngleBracketTemplateLexer.class);

	public void setTemplateLib(StringTemplateGroup templateLib) {
	  this.templateLib = templateLib;
	}
	public StringTemplateGroup getTemplateLib() {
	  return templateLib;
	}
	/** allows convenient multi-value initialization:
	 *  "new STAttrMap().put(...).put(...)"
	 */
	@SuppressWarnings("serial")
	public static class STAttrMap extends HashMap {
		public STAttrMap put(String attrName, Object value) {
			super.put(attrName, value);
			return this;
		}
	}
	@Override public String[] getTokenNames() { return TTreeSlateMd.tokenNames; }
	@Override public String getGrammarFileName() { return "/Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g"; }


	public static class hmxdef_return extends TreeRuleReturnScope {
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "hmxdef"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:25:1: hmxdef : ^( MAIN versionExpr minVerExpr ( ^( INNERT typeExpr ) | ^( INNERA a= apiExpr ) )* ) ;
	public final TTreeSlateMd.hmxdef_return hmxdef() throws RecognitionException {
		TTreeSlateMd.hmxdef_return retval = new TTreeSlateMd.hmxdef_return();
		retval.start = input.LT(1);

		TreeRuleReturnScope a =null;
		TreeRuleReturnScope versionExpr1 =null;
		TreeRuleReturnScope minVerExpr2 =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:26:5: ( ^( MAIN versionExpr minVerExpr ( ^( INNERT typeExpr ) | ^( INNERA a= apiExpr ) )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:26:7: ^( MAIN versionExpr minVerExpr ( ^( INNERT typeExpr ) | ^( INNERA a= apiExpr ) )* )
			{
			match(input,MAIN,FOLLOW_MAIN_in_hmxdef94); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_versionExpr_in_hmxdef96);
			versionExpr1=versionExpr();
			state._fsp--;

			pushFollow(FOLLOW_minVerExpr_in_hmxdef98);
			minVerExpr2=minVerExpr();
			state._fsp--;

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:27:11: ( ^( INNERT typeExpr ) | ^( INNERA a= apiExpr ) )*
			loop1:
			while (true) {
				int alt1=3;
				int LA1_0 = input.LA(1);
				if ( (LA1_0==INNERT) ) {
					alt1=1;
				}
				else if ( (LA1_0==INNERA) ) {
					alt1=2;
				}

				switch (alt1) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:27:12: ^( INNERT typeExpr )
					{
					match(input,INNERT,FOLLOW_INNERT_in_hmxdef112); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_typeExpr_in_hmxdef114);
					typeExpr();
					state._fsp--;

					match(input, Token.UP, null); 

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:28:14: ^( INNERA a= apiExpr )
					{
					match(input,INNERA,FOLLOW_INNERA_in_hmxdef131); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_apiExpr_in_hmxdef135);
					a=apiExpr();
					state._fsp--;

					match(input, Token.UP, null); 

					}
					break;

				default :
					break loop1;
				}
			}

			match(input, Token.UP, null); 


			    addVersionInfo((versionExpr1!=null?((TTreeSlateMd_TTreeShared.versionExpr_return)versionExpr1).major:0), (versionExpr1!=null?((TTreeSlateMd_TTreeShared.versionExpr_return)versionExpr1).minor:0), (versionExpr1!=null?((TTreeSlateMd_TTreeShared.versionExpr_return)versionExpr1).micro:0));
			    addMinVersionInfo((minVerExpr2!=null?((TTreeSlateMd_TTreeShared.minVerExpr_return)minVerExpr2).major:0), (minVerExpr2!=null?((TTreeSlateMd_TTreeShared.minVerExpr_return)minVerExpr2).minor:0), (minVerExpr2!=null?((TTreeSlateMd_TTreeShared.minVerExpr_return)minVerExpr2).micro:0));

			}

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


	protected static class typeExpr_scope {
		boolean isDeprecated;
	}
	protected Stack typeExpr_stack = new Stack();

	public static class typeExpr_return extends TreeRuleReturnScope {
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "typeExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:36:1: typeExpr : ^( TYPEDEF doc= DOC ( beanAnnotation | cacheableAnnotation | extendsAnnotation | ( deprecatedAnnotation ) | addressableAnnotation | storableAnnotation | indexedAnnotation )* name= ID typeAspect typeFields ) ;
	public final TTreeSlateMd.typeExpr_return typeExpr() throws RecognitionException {
		typeExpr_stack.push(new typeExpr_scope());
		TTreeSlateMd.typeExpr_return retval = new TTreeSlateMd.typeExpr_return();
		retval.start = input.LT(1);

		CommonTree doc=null;
		CommonTree name=null;
		TreeRuleReturnScope typeAspect3 =null;
		TreeRuleReturnScope typeFields4 =null;
		TreeRuleReturnScope deprecatedAnnotation5 =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:40:2: ( ^( TYPEDEF doc= DOC ( beanAnnotation | cacheableAnnotation | extendsAnnotation | ( deprecatedAnnotation ) | addressableAnnotation | storableAnnotation | indexedAnnotation )* name= ID typeAspect typeFields ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:41:2: ^( TYPEDEF doc= DOC ( beanAnnotation | cacheableAnnotation | extendsAnnotation | ( deprecatedAnnotation ) | addressableAnnotation | storableAnnotation | indexedAnnotation )* name= ID typeAspect typeFields )
			{
			match(input,TYPEDEF,FOLLOW_TYPEDEF_in_typeExpr173); 
			match(input, Token.DOWN, null); 
			doc=(CommonTree)match(input,DOC,FOLLOW_DOC_in_typeExpr177); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:41:20: ( beanAnnotation | cacheableAnnotation | extendsAnnotation | ( deprecatedAnnotation ) | addressableAnnotation | storableAnnotation | indexedAnnotation )*
			loop2:
			while (true) {
				int alt2=8;
				switch ( input.LA(1) ) {
				case BEAN:
					{
					alt2=1;
					}
					break;
				case CACHEABLE:
					{
					alt2=2;
					}
					break;
				case EXTENDS:
					{
					alt2=3;
					}
					break;
				case DEPRECATED:
					{
					alt2=4;
					}
					break;
				case ADDRESSABLE:
					{
					alt2=5;
					}
					break;
				case STORABLE:
					{
					alt2=6;
					}
					break;
				case INDEXED:
					{
					alt2=7;
					}
					break;
				}
				switch (alt2) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:41:21: beanAnnotation
					{
					pushFollow(FOLLOW_beanAnnotation_in_typeExpr180);
					beanAnnotation();
					state._fsp--;

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:41:36: cacheableAnnotation
					{
					pushFollow(FOLLOW_cacheableAnnotation_in_typeExpr182);
					cacheableAnnotation();
					state._fsp--;

					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:41:56: extendsAnnotation
					{
					pushFollow(FOLLOW_extendsAnnotation_in_typeExpr184);
					extendsAnnotation();
					state._fsp--;

					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:42:2: ( deprecatedAnnotation )
					{
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:42:2: ( deprecatedAnnotation )
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:42:3: deprecatedAnnotation
					{
					pushFollow(FOLLOW_deprecatedAnnotation_in_typeExpr189);
					deprecatedAnnotation5=deprecatedAnnotation();
					state._fsp--;

					 typeExpr_stack.peek().isDeprecated = true; 
					}

					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:43:3: addressableAnnotation
					{
					pushFollow(FOLLOW_addressableAnnotation_in_typeExpr196);
					addressableAnnotation();
					state._fsp--;

					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:43:25: storableAnnotation
					{
					pushFollow(FOLLOW_storableAnnotation_in_typeExpr198);
					storableAnnotation();
					state._fsp--;

					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:43:44: indexedAnnotation
					{
					pushFollow(FOLLOW_indexedAnnotation_in_typeExpr200);
					indexedAnnotation();
					state._fsp--;

					}
					break;

				default :
					break loop2;
				}
			}

			name=(CommonTree)match(input,ID,FOLLOW_ID_in_typeExpr207); 
			pushFollow(FOLLOW_typeAspect_in_typeExpr209);
			typeAspect3=typeAspect();
			state._fsp--;

			pushFollow(FOLLOW_typeFields_in_typeExpr211);
			typeFields4=typeFields();
			state._fsp--;

			match(input, Token.UP, null); 


				   String d = doc.getText();
			     d = d.substring(1,d.length()-1);
			     addType((typeAspect3!=null?((TTreeSlateMd.typeAspect_return)typeAspect3).name:null), (name!=null?name.getText():null), (typeFields4!=null?((TTreeSlateMd.typeFields_return)typeFields4).fields:null), d, typeExpr_stack.peek().isDeprecated, (deprecatedAnnotation5!=null?((TTreeSlateMd.deprecatedAnnotation_return)deprecatedAnnotation5).text:null));

			}

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


	public static class typeAspect_return extends TreeRuleReturnScope {
		public String name;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "typeAspect"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:49:1: typeAspect returns [String name] : ^( TYPEASPECT p= PACKAGENAME ) ;
	public final TTreeSlateMd.typeAspect_return typeAspect() throws RecognitionException {
		TTreeSlateMd.typeAspect_return retval = new TTreeSlateMd.typeAspect_return();
		retval.start = input.LT(1);

		CommonTree p=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:49:33: ( ^( TYPEASPECT p= PACKAGENAME ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:50:5: ^( TYPEASPECT p= PACKAGENAME )
			{
			match(input,TYPEASPECT,FOLLOW_TYPEASPECT_in_typeAspect232); 
			match(input, Token.DOWN, null); 
			p=(CommonTree)match(input,PACKAGENAME,FOLLOW_PACKAGENAME_in_typeAspect236); 
			match(input, Token.UP, null); 

			 retval.name = (p!=null?p.getText():null); 
			}

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


	public static class typeFields_return extends TreeRuleReturnScope {
		public List fields;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "typeFields"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:52:1: typeFields returns [List fields] : ^( TYPEFIELDS (t= typeFieldDef )* ) ;
	public final TTreeSlateMd.typeFields_return typeFields() throws RecognitionException {
		TTreeSlateMd.typeFields_return retval = new TTreeSlateMd.typeFields_return();
		retval.start = input.LT(1);

		TreeRuleReturnScope t =null;


		    retval.fields = new ArrayList();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:55:3: ( ^( TYPEFIELDS (t= typeFieldDef )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:56:5: ^( TYPEFIELDS (t= typeFieldDef )* )
			{
			match(input,TYPEFIELDS,FOLLOW_TYPEFIELDS_in_typeFields263); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:56:18: (t= typeFieldDef )*
				loop3:
				while (true) {
					int alt3=2;
					int LA3_0 = input.LA(1);
					if ( (LA3_0==TYPEMEMBER) ) {
						alt3=1;
					}

					switch (alt3) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:56:19: t= typeFieldDef
						{
						pushFollow(FOLLOW_typeFieldDef_in_typeFields268);
						t=typeFieldDef();
						state._fsp--;

						 retval.fields.add((t!=null?((TTreeSlateMd.typeFieldDef_return)t).field:null)); 
						}
						break;

					default :
						break loop3;
					}
				}

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

			}

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


	public static class typeFieldDef_return extends TreeRuleReturnScope {
		public Field field;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "typeFieldDef"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:58:1: typeFieldDef returns [Field field] : ^( TYPEMEMBER ^( TYPE vartype ) ^( NAME ID ) ^( FIELD_CONSTRUCTOR ( fieldConstructor )? ) ) ;
	public final TTreeSlateMd.typeFieldDef_return typeFieldDef() throws RecognitionException {
		TTreeSlateMd.typeFieldDef_return retval = new TTreeSlateMd.typeFieldDef_return();
		retval.start = input.LT(1);

		CommonTree ID7=null;
		TreeRuleReturnScope vartype6 =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:58:35: ( ^( TYPEMEMBER ^( TYPE vartype ) ^( NAME ID ) ^( FIELD_CONSTRUCTOR ( fieldConstructor )? ) ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:59:5: ^( TYPEMEMBER ^( TYPE vartype ) ^( NAME ID ) ^( FIELD_CONSTRUCTOR ( fieldConstructor )? ) )
			{
			match(input,TYPEMEMBER,FOLLOW_TYPEMEMBER_in_typeFieldDef293); 
			match(input, Token.DOWN, null); 
			match(input,TYPE,FOLLOW_TYPE_in_typeFieldDef296); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_vartype_in_typeFieldDef298);
			vartype6=vartype();
			state._fsp--;

			match(input, Token.UP, null); 

			match(input,NAME,FOLLOW_NAME_in_typeFieldDef302); 
			match(input, Token.DOWN, null); 
			ID7=(CommonTree)match(input,ID,FOLLOW_ID_in_typeFieldDef304); 
			match(input, Token.UP, null); 

			match(input,FIELD_CONSTRUCTOR,FOLLOW_FIELD_CONSTRUCTOR_in_typeFieldDef308); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:59:65: ( fieldConstructor )?
				int alt4=2;
				int LA4_0 = input.LA(1);
				if ( ((LA4_0 >= ADDRESSABLE && LA4_0 <= 139)) ) {
					alt4=1;
				}
				switch (alt4) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:59:65: fieldConstructor
						{
						pushFollow(FOLLOW_fieldConstructor_in_typeFieldDef310);
						fieldConstructor();
						state._fsp--;

						}
						break;

				}

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

			match(input, Token.UP, null); 


			      retval.field = TypeFactory.createField((vartype6!=null?(input.getTokenStream().toString(input.getTreeAdaptor().getTokenStartIndex(vartype6.start),input.getTreeAdaptor().getTokenStopIndex(vartype6.start))):null), (ID7!=null?ID7.getText():null));

			}

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


	public static class vartype_return extends TreeRuleReturnScope {
		public String mainType;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "vartype"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:67:1: vartype returns [String mainType] : ( ^( RAW INTTYPE ) | ^( RAW LONGTYPE ) | ^( RAW DATETYPE ) | ^( RAW OBJECTTYPE ) | ^( RAW LONGCTYPE ) | ^( RAW BOOLTYPE ) | ^( RAW DOUBLETYPE ) | ^( RAW STRINGTYPE ) | ^( RAW BYTEARRAYTYPE ) | ^( RAW VOIDTYPE ) | ^( LISTTYPE v= vartype ) | ^( SETTYPE v= vartype ) | ^( MAPTYPE k= vartype v= vartype ) | ^( COMPLEX typeid= ID ) );
	public final TTreeSlateMd.vartype_return vartype() throws RecognitionException {
		TTreeSlateMd.vartype_return retval = new TTreeSlateMd.vartype_return();
		retval.start = input.LT(1);

		CommonTree typeid=null;
		TreeRuleReturnScope v =null;
		TreeRuleReturnScope k =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:67:34: ( ^( RAW INTTYPE ) | ^( RAW LONGTYPE ) | ^( RAW DATETYPE ) | ^( RAW OBJECTTYPE ) | ^( RAW LONGCTYPE ) | ^( RAW BOOLTYPE ) | ^( RAW DOUBLETYPE ) | ^( RAW STRINGTYPE ) | ^( RAW BYTEARRAYTYPE ) | ^( RAW VOIDTYPE ) | ^( LISTTYPE v= vartype ) | ^( SETTYPE v= vartype ) | ^( MAPTYPE k= vartype v= vartype ) | ^( COMPLEX typeid= ID ) )
			int alt5=14;
			switch ( input.LA(1) ) {
			case RAW:
				{
				int LA5_1 = input.LA(2);
				if ( (LA5_1==DOWN) ) {
					switch ( input.LA(3) ) {
					case INTTYPE:
						{
						alt5=1;
						}
						break;
					case LONGTYPE:
						{
						alt5=2;
						}
						break;
					case DATETYPE:
						{
						alt5=3;
						}
						break;
					case OBJECTTYPE:
						{
						alt5=4;
						}
						break;
					case LONGCTYPE:
						{
						alt5=5;
						}
						break;
					case BOOLTYPE:
						{
						alt5=6;
						}
						break;
					case DOUBLETYPE:
						{
						alt5=7;
						}
						break;
					case STRINGTYPE:
						{
						alt5=8;
						}
						break;
					case BYTEARRAYTYPE:
						{
						alt5=9;
						}
						break;
					case VOIDTYPE:
						{
						alt5=10;
						}
						break;
					default:
						int nvaeMark = input.mark();
						try {
							for (int nvaeConsume = 0; nvaeConsume < 3 - 1; nvaeConsume++) {
								input.consume();
							}
							NoViableAltException nvae =
								new NoViableAltException("", 5, 6, input);
							throw nvae;
						} finally {
							input.rewind(nvaeMark);
						}
					}
				}

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

				}
				break;
			case LISTTYPE:
				{
				alt5=11;
				}
				break;
			case SETTYPE:
				{
				alt5=12;
				}
				break;
			case MAPTYPE:
				{
				alt5=13;
				}
				break;
			case COMPLEX:
				{
				alt5=14;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 5, 0, input);
				throw nvae;
			}
			switch (alt5) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:68:5: ^( RAW INTTYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype339); 
					match(input, Token.DOWN, null); 
					match(input,INTTYPE,FOLLOW_INTTYPE_in_vartype341); 
					match(input, Token.UP, null); 

					 retval.mainType = "int"; 
					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:69:7: ^( RAW LONGTYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype353); 
					match(input, Token.DOWN, null); 
					match(input,LONGTYPE,FOLLOW_LONGTYPE_in_vartype355); 
					match(input, Token.UP, null); 

					 retval.mainType = "long"; 
					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:70:7: ^( RAW DATETYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype367); 
					match(input, Token.DOWN, null); 
					match(input,DATETYPE,FOLLOW_DATETYPE_in_vartype369); 
					match(input, Token.UP, null); 

					 retval.mainType = "Date"; 
					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:71:7: ^( RAW OBJECTTYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype381); 
					match(input, Token.DOWN, null); 
					match(input,OBJECTTYPE,FOLLOW_OBJECTTYPE_in_vartype383); 
					match(input, Token.UP, null); 

					 retval.mainType = "Object";
					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:72:7: ^( RAW LONGCTYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype395); 
					match(input, Token.DOWN, null); 
					match(input,LONGCTYPE,FOLLOW_LONGCTYPE_in_vartype397); 
					match(input, Token.UP, null); 

					 retval.mainType = "Long";
					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:73:7: ^( RAW BOOLTYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype409); 
					match(input, Token.DOWN, null); 
					match(input,BOOLTYPE,FOLLOW_BOOLTYPE_in_vartype411); 
					match(input, Token.UP, null); 

					 retval.mainType = "boolean"; 
					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:74:7: ^( RAW DOUBLETYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype423); 
					match(input, Token.DOWN, null); 
					match(input,DOUBLETYPE,FOLLOW_DOUBLETYPE_in_vartype425); 
					match(input, Token.UP, null); 

					 retval.mainType = "double"; 
					}
					break;
				case 8 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:75:7: ^( RAW STRINGTYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype437); 
					match(input, Token.DOWN, null); 
					match(input,STRINGTYPE,FOLLOW_STRINGTYPE_in_vartype439); 
					match(input, Token.UP, null); 

					 retval.mainType = "String";
					}
					break;
				case 9 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:76:7: ^( RAW BYTEARRAYTYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype451); 
					match(input, Token.DOWN, null); 
					match(input,BYTEARRAYTYPE,FOLLOW_BYTEARRAYTYPE_in_vartype453); 
					match(input, Token.UP, null); 

					 retval.mainType = "byte[]";
					}
					break;
				case 10 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:77:7: ^( RAW VOIDTYPE )
					{
					match(input,RAW,FOLLOW_RAW_in_vartype465); 
					match(input, Token.DOWN, null); 
					match(input,VOIDTYPE,FOLLOW_VOIDTYPE_in_vartype467); 
					match(input, Token.UP, null); 

					 retval.mainType = "void";
					}
					break;
				case 11 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:78:7: ^( LISTTYPE v= vartype )
					{
					match(input,LISTTYPE,FOLLOW_LISTTYPE_in_vartype479); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_vartype_in_vartype483);
					v=vartype();
					state._fsp--;

					match(input, Token.UP, null); 

					 retval.mainType = "List<" + (v!=null?((TTreeSlateMd.vartype_return)v).mainType:null) + ">" ;  
					}
					break;
				case 12 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:79:7: ^( SETTYPE v= vartype )
					{
					match(input,SETTYPE,FOLLOW_SETTYPE_in_vartype495); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_vartype_in_vartype499);
					v=vartype();
					state._fsp--;

					match(input, Token.UP, null); 

					 retval.mainType = "Set<" + (v!=null?((TTreeSlateMd.vartype_return)v).mainType:null) + ">" ;  
					}
					break;
				case 13 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:80:7: ^( MAPTYPE k= vartype v= vartype )
					{
					match(input,MAPTYPE,FOLLOW_MAPTYPE_in_vartype511); 
					match(input, Token.DOWN, null); 
					pushFollow(FOLLOW_vartype_in_vartype515);
					k=vartype();
					state._fsp--;

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

					match(input, Token.UP, null); 

					 retval.mainType = "Map<" + (k!=null?((TTreeSlateMd.vartype_return)k).mainType:null) + "," + (v!=null?((TTreeSlateMd.vartype_return)v).mainType:null) + ">" ;  
					}
					break;
				case 14 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:81:7: ^( COMPLEX typeid= ID )
					{
					match(input,COMPLEX,FOLLOW_COMPLEX_in_vartype535); 
					match(input, Token.DOWN, null); 
					typeid=(CommonTree)match(input,ID,FOLLOW_ID_in_vartype539); 
					match(input, Token.UP, null); 

					 retval.mainType = (typeid!=null?typeid.getText():null); 
					}
					break;

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


	protected static class apiExpr_scope {
		String apiName;
		boolean isDeprecated;
	}
	protected Stack apiExpr_stack = new Stack();

	public static class apiExpr_return extends TreeRuleReturnScope {
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "apiExpr"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:83:1: apiExpr : ^( APISEC doc= DOC (deprecated= deprecatedAnnotation )? apiType= ID (a= apilist ) ) ;
	public final TTreeSlateMd.apiExpr_return apiExpr() throws RecognitionException {
		apiExpr_stack.push(new apiExpr_scope());
		TTreeSlateMd.apiExpr_return retval = new TTreeSlateMd.apiExpr_return();
		retval.start = input.LT(1);

		CommonTree doc=null;
		CommonTree apiType=null;
		TreeRuleReturnScope deprecated =null;
		TreeRuleReturnScope a =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:88:5: ( ^( APISEC doc= DOC (deprecated= deprecatedAnnotation )? apiType= ID (a= apilist ) ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:89:5: ^( APISEC doc= DOC (deprecated= deprecatedAnnotation )? apiType= ID (a= apilist ) )
			{
			match(input,APISEC,FOLLOW_APISEC_in_apiExpr575); 
			match(input, Token.DOWN, null); 
			doc=(CommonTree)match(input,DOC,FOLLOW_DOC_in_apiExpr579); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:89:22: (deprecated= deprecatedAnnotation )?
			int alt6=2;
			int LA6_0 = input.LA(1);
			if ( (LA6_0==DEPRECATED) ) {
				alt6=1;
			}
			switch (alt6) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:89:23: deprecated= deprecatedAnnotation
					{
					pushFollow(FOLLOW_deprecatedAnnotation_in_apiExpr584);
					deprecated=deprecatedAnnotation();
					state._fsp--;

					 apiExpr_stack.peek().isDeprecated = true; 
					}
					break;

			}

			apiType=(CommonTree)match(input,ID,FOLLOW_ID_in_apiExpr600); 
			 apiExpr_stack.peek().apiName = (apiType!=null?apiType.getText():null); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:90:59: (a= apilist )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:90:60: a= apilist
			{
			pushFollow(FOLLOW_apilist_in_apiExpr607);
			a=apilist();
			state._fsp--;

			}

			match(input, Token.UP, null); 


			         String d = doc.getText();
			         d = d.substring(1,d.length()-1);
			         addApi((apiType!=null?apiType.getText():null), (a!=null?((TTreeSlateMd.apilist_return)a).functions:null), d, apiExpr_stack.peek().isDeprecated, (deprecated!=null?((TTreeSlateMd.deprecatedAnnotation_return)deprecated).text:null));


			}

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


	public static class apilist_return extends TreeRuleReturnScope {
		public List functions;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "apilist"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:101:1: apilist returns [List functions] : (a= apistmt )+ ;
	public final TTreeSlateMd.apilist_return apilist() throws RecognitionException {
		TTreeSlateMd.apilist_return retval = new TTreeSlateMd.apilist_return();
		retval.start = input.LT(1);

		TreeRuleReturnScope a =null;


			retval.functions = new ArrayList();
			
		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:105:3: ( (a= apistmt )+ )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:105:3: (a= apistmt )+
			{
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:105:3: (a= apistmt )+
			int cnt7=0;
			loop7:
			while (true) {
				int alt7=2;
				int LA7_0 = input.LA(1);
				if ( (LA7_0==APIENTRY) ) {
					alt7=1;
				}

				switch (alt7) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:105:4: a= apistmt
					{
					pushFollow(FOLLOW_apistmt_in_apilist633);
					a=apistmt();
					state._fsp--;


							retval.functions.add((a!=null?((TTreeSlateMd.apistmt_return)a).function:null));
					   
					}
					break;

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

			}

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


	public static class deprecatedAnnotation_return extends TreeRuleReturnScope {
		public String text;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "deprecatedAnnotation"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:109:1: deprecatedAnnotation returns [String text] : ( ( DEPRECATED ID ) | ( DEPRECATED STRING ) );
	public final TTreeSlateMd.deprecatedAnnotation_return deprecatedAnnotation() throws RecognitionException {
		TTreeSlateMd.deprecatedAnnotation_return retval = new TTreeSlateMd.deprecatedAnnotation_return();
		retval.start = input.LT(1);

		CommonTree ID8=null;
		CommonTree STRING9=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:110:5: ( ( DEPRECATED ID ) | ( DEPRECATED STRING ) )
			int alt8=2;
			int LA8_0 = input.LA(1);
			if ( (LA8_0==DEPRECATED) ) {
				int LA8_1 = input.LA(2);
				if ( (LA8_1==ID) ) {
					alt8=1;
				}
				else if ( (LA8_1==STRING) ) {
					alt8=2;
				}

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

			}

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

			switch (alt8) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:110:7: ( DEPRECATED ID )
					{
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:110:7: ( DEPRECATED ID )
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:110:9: DEPRECATED ID
					{
					match(input,DEPRECATED,FOLLOW_DEPRECATED_in_deprecatedAnnotation660); 
					ID8=(CommonTree)match(input,ID,FOLLOW_ID_in_deprecatedAnnotation662); 
					 retval.text = (ID8!=null?ID8.getText():null); 
					}

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:111:7: ( DEPRECATED STRING )
					{
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:111:7: ( DEPRECATED STRING )
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:111:9: DEPRECATED STRING
					{
					match(input,DEPRECATED,FOLLOW_DEPRECATED_in_deprecatedAnnotation675); 
					STRING9=(CommonTree)match(input,STRING,FOLLOW_STRING_in_deprecatedAnnotation677); 
					 retval.text = (STRING9!=null?STRING9.getText():null); 
					}

					}
					break;

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


	public static class visibility_return extends TreeRuleReturnScope {
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


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

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:114:12: ( PRIVATEVIS | PUBLICVIS )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:
			{
			if ( (input.LA(1) >= PRIVATEVIS && input.LA(1) <= PUBLICVIS) ) {
				input.consume();
				state.errorRecovery=false;
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				throw mse;
			}
			}

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


	protected static class apistmt_scope {
		boolean isDeprecated;
	}
	protected Stack apistmt_stack = new Stack();

	public static class apistmt_return extends TreeRuleReturnScope {
		public Function function;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "apistmt"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:116:1: apistmt returns [Function function] : ^( APIENTRY doc= DOC ^( ENTITLEASPECT (rent= REGULARENTITLE )+ (k= ID v= ID )* ) ( deprecatedAnnotation )? ^( VISIBILITY visibility ) ^( RETTYPE vartype ) ^( FNNAME name= ID ) p= paramList ) ;
	public final TTreeSlateMd.apistmt_return apistmt() throws RecognitionException {
		apistmt_stack.push(new apistmt_scope());
		TTreeSlateMd.apistmt_return retval = new TTreeSlateMd.apistmt_return();
		retval.start = input.LT(1);

		CommonTree doc=null;
		CommonTree rent=null;
		CommonTree k=null;
		CommonTree v=null;
		CommonTree name=null;
		TreeRuleReturnScope p =null;
		TreeRuleReturnScope vartype10 =null;
		TreeRuleReturnScope deprecatedAnnotation11 =null;


		    List regularEntitlements = new ArrayList();
		    Map dynamicEntMap = new HashMap();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:124:3: ( ^( APIENTRY doc= DOC ^( ENTITLEASPECT (rent= REGULARENTITLE )+ (k= ID v= ID )* ) ( deprecatedAnnotation )? ^( VISIBILITY visibility ) ^( RETTYPE vartype ) ^( FNNAME name= ID ) p= paramList ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:124:3: ^( APIENTRY doc= DOC ^( ENTITLEASPECT (rent= REGULARENTITLE )+ (k= ID v= ID )* ) ( deprecatedAnnotation )? ^( VISIBILITY visibility ) ^( RETTYPE vartype ) ^( FNNAME name= ID ) p= paramList )
			{
			match(input,APIENTRY,FOLLOW_APIENTRY_in_apistmt722); 
			match(input, Token.DOWN, null); 
			doc=(CommonTree)match(input,DOC,FOLLOW_DOC_in_apistmt726); 
			match(input,ENTITLEASPECT,FOLLOW_ENTITLEASPECT_in_apistmt730); 
			match(input, Token.DOWN, null); 
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:124:39: (rent= REGULARENTITLE )+
			int cnt9=0;
			loop9:
			while (true) {
				int alt9=2;
				int LA9_0 = input.LA(1);
				if ( (LA9_0==REGULARENTITLE) ) {
					alt9=1;
				}

				switch (alt9) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:124:40: rent= REGULARENTITLE
					{
					rent=(CommonTree)match(input,REGULARENTITLE,FOLLOW_REGULARENTITLE_in_apistmt735); 
					regularEntitlements.add((rent!=null?rent.getText():null));
					}
					break;

				default :
					if ( cnt9 >= 1 ) break loop9;
					EarlyExitException eee = new EarlyExitException(9, input);
					throw eee;
				}
				cnt9++;
			}

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:125:25: (k= ID v= ID )*
			loop10:
			while (true) {
				int alt10=2;
				int LA10_0 = input.LA(1);
				if ( (LA10_0==ID) ) {
					alt10=1;
				}

				switch (alt10) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:125:26: k= ID v= ID
					{
					k=(CommonTree)match(input,ID,FOLLOW_ID_in_apistmt768); 
					v=(CommonTree)match(input,ID,FOLLOW_ID_in_apistmt772); 
					dynamicEntMap.put((k!=null?k.getText():null), (v!=null?v.getText():null));
					}
					break;

				default :
					break loop10;
				}
			}

			match(input, Token.UP, null); 

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:126:6: ( deprecatedAnnotation )?
			int alt11=2;
			int LA11_0 = input.LA(1);
			if ( (LA11_0==DEPRECATED) ) {
				alt11=1;
			}
			switch (alt11) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:126:7: deprecatedAnnotation
					{
					pushFollow(FOLLOW_deprecatedAnnotation_in_apistmt785);
					deprecatedAnnotation11=deprecatedAnnotation();
					state._fsp--;

					 apistmt_stack.peek().isDeprecated = true; 
					}
					break;

			}

			match(input,VISIBILITY,FOLLOW_VISIBILITY_in_apistmt793); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_visibility_in_apistmt795);
			visibility();
			state._fsp--;

			match(input, Token.UP, null); 

			match(input,RETTYPE,FOLLOW_RETTYPE_in_apistmt799); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_vartype_in_apistmt801);
			vartype10=vartype();
			state._fsp--;

			match(input, Token.UP, null); 

			match(input,FNNAME,FOLLOW_FNNAME_in_apistmt810); 
			match(input, Token.DOWN, null); 
			name=(CommonTree)match(input,ID,FOLLOW_ID_in_apistmt814); 
			match(input, Token.UP, null); 

			pushFollow(FOLLOW_paramList_in_apistmt819);
			p=paramList();
			state._fsp--;

			match(input, Token.UP, null); 



			    // This is a single api call
			    String d = doc.getText();
			    d = d.substring(1,d.length()-1);
			    String ent = reassembleFullEntitlmentPath(regularEntitlements, dynamicEntMap);
			    retval.function = FunctionFactory.createFunction(apiExpr_stack.peek().apiName, (vartype10!=null?((TTreeSlateMd.vartype_return)vartype10).mainType:null), (name!=null?name.getText():null), (p!=null?((TTreeSlateMd.paramList_return)p).parameters:null), d, ent,
			            apistmt_stack.peek().isDeprecated, (deprecatedAnnotation11!=null?((TTreeSlateMd.deprecatedAnnotation_return)deprecatedAnnotation11).text:null));

			}

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


	public static class paramList_return extends TreeRuleReturnScope {
		public List parameters;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "paramList"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:138:1: paramList returns [List parameters] : ^( PARAMS (a= param )* ) ;
	public final TTreeSlateMd.paramList_return paramList() throws RecognitionException {
		TTreeSlateMd.paramList_return retval = new TTreeSlateMd.paramList_return();
		retval.start = input.LT(1);

		TreeRuleReturnScope a =null;


			retval.parameters = new ArrayList();

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:142:2: ( ^( PARAMS (a= param )* ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:143:2: ^( PARAMS (a= param )* )
			{
			match(input,PARAMS,FOLLOW_PARAMS_in_paramList841); 
			if ( input.LA(1)==Token.DOWN ) {
				match(input, Token.DOWN, null); 
				// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:143:11: (a= param )*
				loop12:
				while (true) {
					int alt12=2;
					int LA12_0 = input.LA(1);
					if ( (LA12_0==PARAM) ) {
						alt12=1;
					}

					switch (alt12) {
					case 1 :
						// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:143:12: a= param
						{
						pushFollow(FOLLOW_param_in_paramList846);
						a=param();
						state._fsp--;


						    retval.parameters.add((a!=null?((TTreeSlateMd.param_return)a).parameter:null));
						 	
						}
						break;

					default :
						break loop12;
					}
				}

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

			}

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


	public static class param_return extends TreeRuleReturnScope {
		public Parameter parameter;
		public StringTemplate st;
		public Object getTemplate() { return st; }
		public String toString() { return st==null?null:st.toString(); }
	};


	// $ANTLR start "param"
	// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:147:1: param returns [Parameter parameter] : ^( PARAM ^( TYPE t= vartype ) ^( NAME n= ID ) ( BANG )? ) ;
	public final TTreeSlateMd.param_return param() throws RecognitionException {
		TTreeSlateMd.param_return retval = new TTreeSlateMd.param_return();
		retval.start = input.LT(1);

		CommonTree n=null;
		TreeRuleReturnScope t =null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:147:35: ( ^( PARAM ^( TYPE t= vartype ) ^( NAME n= ID ) ( BANG )? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:147:38: ^( PARAM ^( TYPE t= vartype ) ^( NAME n= ID ) ( BANG )? )
			{
			match(input,PARAM,FOLLOW_PARAM_in_param868); 
			match(input, Token.DOWN, null); 
			match(input,TYPE,FOLLOW_TYPE_in_param871); 
			match(input, Token.DOWN, null); 
			pushFollow(FOLLOW_vartype_in_param875);
			t=vartype();
			state._fsp--;

			match(input, Token.UP, null); 

			match(input,NAME,FOLLOW_NAME_in_param879); 
			match(input, Token.DOWN, null); 
			n=(CommonTree)match(input,ID,FOLLOW_ID_in_param883); 
			match(input, Token.UP, null); 

			// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:147:77: ( BANG )?
			int alt13=2;
			int LA13_0 = input.LA(1);
			if ( (LA13_0==BANG) ) {
				alt13=1;
			}
			switch (alt13) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/CodeGen/CodeGenLib/src/main/antlr3/com/incapture/rapgen/TTreeSlateMd.g:147:77: BANG
					{
					match(input,BANG,FOLLOW_BANG_in_param886); 
					}
					break;

			}

			match(input, Token.UP, null); 


			    retval.parameter = new Parameter();
			    retval.parameter.setName((n!=null?n.getText():null));
			    retval.parameter.setType((t!=null?((TTreeSlateMd.vartype_return)t).mainType:null));

			}

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

	// Delegated rules
	public TTreeSlateMd_TTreeShared.sdkExpr_return sdkExpr() throws RecognitionException { return gTTreeShared.sdkExpr(); }

	public TTreeSlateMd_TTreeShared.indexedAnnotation_return indexedAnnotation() throws RecognitionException { return gTTreeShared.indexedAnnotation(); }

	public TTreeSlateMd_TTreeShared.addressableAnnotation_return addressableAnnotation() throws RecognitionException { return gTTreeShared.addressableAnnotation(); }

	public TTreeSlateMd_TTreeShared.storableAnnotation_return storableAnnotation() throws RecognitionException { return gTTreeShared.storableAnnotation(); }

	public TTreeSlateMd_TTreeShared.beanAnnotation_return beanAnnotation() throws RecognitionException { return gTTreeShared.beanAnnotation(); }

	public TTreeSlateMd_TTreeShared.minVerExpr_return minVerExpr() throws RecognitionException { return gTTreeShared.minVerExpr(); }

	public TTreeSlateMd_TTreeShared.fieldConstructor_return fieldConstructor() throws RecognitionException { return gTTreeShared.fieldConstructor(); }

	public TTreeSlateMd_TTreeShared.cacheableAnnotation_return cacheableAnnotation() throws RecognitionException { return gTTreeShared.cacheableAnnotation(); }

	public TTreeSlateMd_TTreeShared.versionExpr_return versionExpr() throws RecognitionException { return gTTreeShared.versionExpr(); }

	public TTreeSlateMd_TTreeShared.extendsAnnotation_return extendsAnnotation() throws RecognitionException { return gTTreeShared.extendsAnnotation(); }



	public static final BitSet FOLLOW_MAIN_in_hmxdef94 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_versionExpr_in_hmxdef96 = new BitSet(new long[]{0x0000000000000000L,0x0000000000800000L});
	public static final BitSet FOLLOW_minVerExpr_in_hmxdef98 = new BitSet(new long[]{0x0000000000000008L,0x00000000000A0000L});
	public static final BitSet FOLLOW_INNERT_in_hmxdef112 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_typeExpr_in_hmxdef114 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_INNERA_in_hmxdef131 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_apiExpr_in_hmxdef135 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_TYPEDEF_in_typeExpr173 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_DOC_in_typeExpr177 = new BitSet(new long[]{0x02000000A4080910L});
	public static final BitSet FOLLOW_beanAnnotation_in_typeExpr180 = new BitSet(new long[]{0x02000000A4080910L});
	public static final BitSet FOLLOW_cacheableAnnotation_in_typeExpr182 = new BitSet(new long[]{0x02000000A4080910L});
	public static final BitSet FOLLOW_extendsAnnotation_in_typeExpr184 = new BitSet(new long[]{0x02000000A4080910L});
	public static final BitSet FOLLOW_deprecatedAnnotation_in_typeExpr189 = new BitSet(new long[]{0x02000000A4080910L});
	public static final BitSet FOLLOW_addressableAnnotation_in_typeExpr196 = new BitSet(new long[]{0x02000000A4080910L});
	public static final BitSet FOLLOW_storableAnnotation_in_typeExpr198 = new BitSet(new long[]{0x02000000A4080910L});
	public static final BitSet FOLLOW_indexedAnnotation_in_typeExpr200 = new BitSet(new long[]{0x02000000A4080910L});
	public static final BitSet FOLLOW_ID_in_typeExpr207 = new BitSet(new long[]{0x0000000000000000L,0x0000040000000000L});
	public static final BitSet FOLLOW_typeAspect_in_typeExpr209 = new BitSet(new long[]{0x0000000000000000L,0x0000100000000000L});
	public static final BitSet FOLLOW_typeFields_in_typeExpr211 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_TYPEASPECT_in_typeAspect232 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_PACKAGENAME_in_typeAspect236 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_TYPEFIELDS_in_typeFields263 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_typeFieldDef_in_typeFields268 = new BitSet(new long[]{0x0000000000000008L,0x0000200000000000L});
	public static final BitSet FOLLOW_TYPEMEMBER_in_typeFieldDef293 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_TYPE_in_typeFieldDef296 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_vartype_in_typeFieldDef298 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_NAME_in_typeFieldDef302 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_ID_in_typeFieldDef304 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_FIELD_CONSTRUCTOR_in_typeFieldDef308 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_fieldConstructor_in_typeFieldDef310 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype339 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_INTTYPE_in_vartype341 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype353 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_LONGTYPE_in_vartype355 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype367 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_DATETYPE_in_vartype369 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype381 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_OBJECTTYPE_in_vartype383 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype395 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_LONGCTYPE_in_vartype397 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype409 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_BOOLTYPE_in_vartype411 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype423 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_DOUBLETYPE_in_vartype425 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype437 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_STRINGTYPE_in_vartype439 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype451 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_BYTEARRAYTYPE_in_vartype453 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RAW_in_vartype465 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_VOIDTYPE_in_vartype467 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_LISTTYPE_in_vartype479 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_vartype_in_vartype483 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_SETTYPE_in_vartype495 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_vartype_in_vartype499 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_MAPTYPE_in_vartype511 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_vartype_in_vartype515 = new BitSet(new long[]{0x0080010800000000L,0x0000000020000020L});
	public static final BitSet FOLLOW_vartype_in_vartype519 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_COMPLEX_in_vartype535 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_ID_in_vartype539 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_APISEC_in_apiExpr575 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_DOC_in_apiExpr579 = new BitSet(new long[]{0x0000000020080000L});
	public static final BitSet FOLLOW_deprecatedAnnotation_in_apiExpr584 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_apiExpr600 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000004L});
	public static final BitSet FOLLOW_apilist_in_apiExpr607 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_apistmt_in_apilist633 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000004L});
	public static final BitSet FOLLOW_DEPRECATED_in_deprecatedAnnotation660 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_deprecatedAnnotation662 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_DEPRECATED_in_deprecatedAnnotation675 = new BitSet(new long[]{0x1000000000000000L});
	public static final BitSet FOLLOW_STRING_in_deprecatedAnnotation677 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_APIENTRY_in_apistmt722 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_DOC_in_apistmt726 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000400L});
	public static final BitSet FOLLOW_ENTITLEASPECT_in_apistmt730 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_REGULARENTITLE_in_apistmt735 = new BitSet(new long[]{0x0004000020000008L});
	public static final BitSet FOLLOW_ID_in_apistmt768 = new BitSet(new long[]{0x0000000020000000L});
	public static final BitSet FOLLOW_ID_in_apistmt772 = new BitSet(new long[]{0x0000000020000008L});
	public static final BitSet FOLLOW_deprecatedAnnotation_in_apistmt785 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
	public static final BitSet FOLLOW_VISIBILITY_in_apistmt793 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_visibility_in_apistmt795 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_RETTYPE_in_apistmt799 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_vartype_in_apistmt801 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_FNNAME_in_apistmt810 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_ID_in_apistmt814 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_paramList_in_apistmt819 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_PARAMS_in_paramList841 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_param_in_paramList846 = new BitSet(new long[]{0x0000000000000008L,0x0000000002000000L});
	public static final BitSet FOLLOW_PARAM_in_param868 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_TYPE_in_param871 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_vartype_in_param875 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_NAME_in_param879 = new BitSet(new long[]{0x0000000000000004L});
	public static final BitSet FOLLOW_ID_in_param883 = new BitSet(new long[]{0x0000000000000008L});
	public static final BitSet FOLLOW_BANG_in_param886 = new BitSet(new long[]{0x0000000000000008L});
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy