Package tool.model.grammar

Source Code of tool.model.grammar.ForteCDFTree$DFA35

// $ANTLR 3.2 Sep 23, 2009 12:02:23 /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g 2012-06-18 15:47:59

package tool.model.grammar;
import tool.model.ToolClass;
import tool.model.ToolConstant;
import tool.model.ToolProperty;
import tool.model.ToolParameter;
import tool.model.ToolAttribute;
import tool.model.ToolVirtualAttribute;
import tool.model.ToolEvent;
import tool.model.ToolMethod;
import tool.model.ToolEventHandler;

import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;


import org.antlr.runtime.*;
import org.antlr.runtime.tree.*;import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class ForteCDFTree extends TreeParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "PROJECT", "PROJECT_TYPE", "FORWARD_CLASS", "FORWARD_MAPPED_CLASS", "FORWARD_INTERFACE", "FORWARD_CURSOR", "FORWARD_STRUCT", "SUPPLIER_PLANS", "NEGATION", "BLOCK_SCOPE", "CAST_EXPR", "ARGUMENT_LIST", "ARGUMENT_LIST_EVENT", "ARGUMENT", "EXPR", "FOR_COUNT", "FOR_EACH", "FOR_SQL", "FORMAL_PARAM_LIST", "FUNCTION_METHOD_DECL", "VOID_METHOD_DECL", "METHOD_CALL", "CLASS_CONSTRUCTOR_CALL", "SELF_CONSTRUCTOR_CALL", "SUPER_CONSTRUCTOR_CALL", "ARRAY_INDEX", "METHOD_COMPLETION", "METHOD_DECLARATION", "METHOD_IMPLEMENTATION", "C_ARRAY", "EVENT_DECLARATION", "EVENT_HANDLER_DECLARATION", "EVENT_HANDLER_IMPLEMENTATION", "EVENT_CASE", "EVENT_LOOP", "VIRTUAL_ATTRIBUTE", "ATTRIBUTE_DECLARATION", "WINDOW_ATTRIBUTE_DECLARATION", "CLASS_DECLARATION", "INTERFACE_DECLARATION", "PARAMETER", "PLAN_TYPE", "START_TASK", "LABEL", "LOCAL_DECLARATION", "WHEN_EVENT", "WHEN_CASE", "WHEN_EXCEPTION", "ARRAY_ELEMENT_ACCESS", "ARRAY_CSTYLE", "ARRAY_DECLARATOR_LIST", "PARENTESIZED_EXPR", "UNARY_PLUS", "UNARY_MINUS", "TYPE", "ARRAY_TYPE", "QUALIFIED_TYPE_IDENT", "QUALIFIED_NAME", "POINTER_TYPE", "BLOCK", "GET_EXPRESSION", "SET_EXPRESSION", "SO_VIS", "SO_DIALOG", "SO_FAILOVER", "SO_LOADBALANCE", "SO_PATH", "SO_EXT_MGR", "SO_RESOURCE", "SO_USERNAME", "SO_PASSWORD", "PROJ_PROP", "PROP_CL", "PROP_PROJ_TYPE", "PROP_RESTRICTED", "PROP_MULTI_THREAD", "PROP_INTERNAL", "PROP_LIBRARY_NAME", "PROP_START_METHOD", "PROP_IS_LIBRARY", "PROP_APPLICATION", "OVERRIDE", "ALLOW", "DISTRIBUTED", "SHARED", "DEFAULT", "TRANSACTIONAL", "MONITORED", "CLASSLINEAGE", "NO_PARAM_NAME", "NAME_TYPE", "UUID", "ON_SESSION", "SQL_VARIABLE", "SQL_EXECUTE_PROCEDURE", "SQL_EXECUTE_IMMEDIATE", "SQL_DELETE", "SQL_CURSOR", "SQL_SELECT", "SQL_GROUP_BY", "SQL_ORDER_BY", "SQL_CURSOR_FETCH", "SQL_CURSOR_NEXT", "SQL_INSERT", "SQL_UPDATE", "SQL_TABLE_NAMES", "BEGIN", "IDENTIFIER", "FROM", "SEMI", "END", "INCLUDES", "HAS", "PROPERTY", "EQ", "INTLITERAL", "STRINGLITERAL", "LPAREN", "CLASS", "COMMA", "METHOD", "RPAREN", "FORWARD", "IS", "MAPPED", "INTERFACE", "CURSOR", "STRUCT", "INCLUDE", "DOT", "NIL", "SERVICE", "COLON", "EXTENDED", "TRANSACTION", "INHERITS", "IMPLEMENTS", "WINDOWLITERAL", "WINDOWTERMINATOR", "GENERATED", "ATTRIBUTE", "WIDGETIDENTFIER", "VIRTUAL", "WHERE", "COMPLETION", "RETURN", "EXCEPTION", "EVENT", "HANDLER", "CONSTANT", "FOR", "IN", "DO", "TO", "BY", "EXIT", "CONTINUE", "CASE", "WHILE", "IF", "THEN", "ELSEIF", "RAISE", "POST", "LOOP", "PREREGISTER", "POSTREGISTER", "REGISTER", "WHEN", "ELSE", "COPY", "INPUT", "OUTPUT", "START", "TASK", "OR", "AND", "BIT_OR", "BIT_XOR", "BIT_AND", "NOT_EQUAL", "LTEQ", "GTEQ", "LT", "GT", "PLUS", "MINUS", "MULT", "DIV", "MOD", "NOT", "NEW", "SELF", "SUPER", "OF", "C_ARRAY_RANGE", "ENUM", "TYPEDEF", "CHANGED", "FALSE", "PRIVATE", "PUBLIC", "TRUE", "UNION", "HEXLITERAL", "FLOATLITERAL", "SQL", "WS", "LBRACKET", "RBRACKET", "LETTER", "UNDERSCORE", "DIGIT", "EscapeSequence", "DOTDOT", "COMMENT", "LINE_COMMENT", "Quote", "Escape", "IntegerNumber", "HexPrefix", "HexDigit", "ANYCHARS", "'projecttype'", "'restricted'", "'#'", "'\"'", "'publicinternal'", "'privateinternal'", "'\"$toocomplex\"'", "'$toocomplex'", "SQL_DO", "XOR", "IDENTIDENTIFIER", "DEPENDENT", "NESTED", "INDEPENDENT", "ARRAY", "LARAGEARRAY", "GENERICARRAY", "FRAMEWORK", "'ignore'", "'internalpublic'", "'internalprivate'", "'boolean'", "'string'", "'integer'", "'int'", "'double'", "'char'", "'uchar'", "'short'", "'float'", "'long'", "'ui1'", "'ui2'", "'ui4'", "'i1'", "'i2'", "'i4'", "'iu1'", "'pointer'", "'APPC'", "'Configuration'", "'Corba'", "'CosNaming'", "'DB2'", "'DCE'", "'DDEProject'", "'DisplayProject'", "'EnvManagement'", "'ForeignObjMgr'", "'GenericDBMS'", "'GenericRepository'", "'HTTP'", "'HTTPSupport'", "'Informix'", "'Ingres'", "'LDAP'", "'ODBC'", "'OLE'", "'OLE2'", "'Oracle'", "'Oracle7'", "'Rdb'", "'Sybase'", "'SybaseCTLib'", "'SystemMonitor'", "'TOOLCompiler'", "'TOOLInterpreter'", "'XMLDOM2'", "'XMLParser'", "'XMLSAX2'", "'XMLSvr'", "'XSLT'"
    };
    public static final int SO_EXT_MGR=71;
    public static final int SQL_EXECUTE_PROCEDURE=98;
    public static final int T__259=259;
    public static final int SO_PASSWORD=74;
    public static final int T__258=258;
    public static final int MOD=193;
    public static final int LETTER=214;
    public static final int T__257=257;
    public static final int HEXLITERAL=208;
    public static final int T__262=262;
    public static final int T__263=263;
    public static final int T__260=260;
    public static final int DO=156;
    public static final int T__261=261;
    public static final int SELF_CONSTRUCTOR_CALL=27;
    public static final int T__266=266;
    public static final int T__267=267;
    public static final int T__264=264;
    public static final int START_TASK=46;
    public static final int NOT=194;
    public static final int T__265=265;
    public static final int SET_EXPRESSION=65;
    public static final int EOF=-1;
    public static final int UNARY_PLUS=56;
    public static final int TYPE=58;
    public static final int INCLUDES=115;
    public static final int LBRACKET=212;
    public static final int RPAREN=125;
    public static final int CAST_EXPR=14;
    public static final int T__247=247;
    public static final int T__246=246;
    public static final int NOT_EQUAL=184;
    public static final int T__249=249;
    public static final int T__248=248;
    public static final int BEGIN=110;
    public static final int INCLUDE=132;
    public static final int LOOP=168;
    public static final int RETURN=149;
    public static final int T__250=250;
    public static final int T__251=251;
    public static final int T__252=252;
    public static final int T__253=253;
    public static final int T__254=254;
    public static final int T__255=255;
    public static final int T__256=256;
    public static final int EQ=118;
    public static final int ARGUMENT_LIST_EVENT=16;
    public static final int EVENT_DECLARATION=34;
    public static final int REGISTER=171;
    public static final int DEPENDENT=238;
    public static final int VIRTUAL=146;
    public static final int HANDLER=152;
    public static final int SHARED=88;
    public static final int FORWARD_CLASS=6;
    public static final int TRANSACTION=138;
    public static final int ALLOW=86;
    public static final int ELSE=173;
    public static final int T__279=279;
    public static final int T__288=288;
    public static final int T__289=289;
    public static final int T__286=286;
    public static final int T__287=287;
    public static final int UNDERSCORE=215;
    public static final int UNARY_MINUS=57;
    public static final int T__284=284;
    public static final int SQL_CURSOR=101;
    public static final int T__285=285;
    public static final int T__282=282;
    public static final int T__283=283;
    public static final int T__280=280;
    public static final int WHEN_CASE=50;
    public static final int INTLITERAL=119;
    public static final int T__281=281;
    public static final int SQL_DELETE=100;
    public static final int WS=211;
    public static final int SERVICE=135;
    public static final int SO_PATH=70;
    public static final int WINDOWTERMINATOR=142;
    public static final int FOR_SQL=21;
    public static final int WINDOW_ATTRIBUTE_DECLARATION=41;
    public static final int T__269=269;
    public static final int T__268=268;
    public static final int T__275=275;
    public static final int T__276=276;
    public static final int CONSTANT=153;
    public static final int T__277=277;
    public static final int GT=188;
    public static final int T__278=278;
    public static final int SQL_EXECUTE_IMMEDIATE=99;
    public static final int T__271=271;
    public static final int T__272=272;
    public static final int T__273=273;
    public static final int T__274=274;
    public static final int END=114;
    public static final int METHOD_DECLARATION=31;
    public static final int T__270=270;
    public static final int MAPPED=128;
    public static final int UUID=95;
    public static final int SQL_CURSOR_FETCH=105;
    public static final int LTEQ=185;
    public static final int INPUT=175;
    public static final int ARRAY_TYPE=59;
    public static final int Quote=221;
    public static final int HexDigit=225;
    public static final int LPAREN=121;
    public static final int FORWARD_INTERFACE=8;
    public static final int SO_RESOURCE=72;
    public static final int SQL_SELECT=102;
    public static final int THEN=164;
    public static final int IMPLEMENTS=140;
    public static final int PROP_APPLICATION=84;
    public static final int MONITORED=91;
    public static final int ARGUMENT=17;
    public static final int ARRAY_INDEX=29;
    public static final int PLUS=189;
    public static final int SO_VIS=66;
    public static final int PROP_MULTI_THREAD=79;
    public static final int PROP_LIBRARY_NAME=81;
    public static final int QUALIFIED_NAME=61;
    public static final int EVENT_LOOP=38;
    public static final int BY=158;
    public static final int SQL_TABLE_NAMES=109;
    public static final int TO=157;
    public static final int SO_USERNAME=73;
    public static final int TYPEDEF=201;
    public static final int CLASSLINEAGE=92;
    public static final int GET_EXPRESSION=64;
    public static final int MINUS=190;
    public static final int T__245=245;
    public static final int COMPLETION=148;
    public static final int SEMI=113;
    public static final int Escape=222;
    public static final int PROP_IS_LIBRARY=83;
    public static final int UNION=207;
    public static final int T__228=228;
    public static final int COLON=136;
    public static final int T__229=229;
    public static final int CLASS_DECLARATION=42;
    public static final int ANYCHARS=226;
    public static final int ENUM=200;
    public static final int ARRAY_CSTYLE=53;
    public static final int NEGATION=12;
    public static final int T__227=227;
    public static final int WHEN=172;
    public static final int STRINGLITERAL=120;
    public static final int WINDOWLITERAL=141;
    public static final int FORWARD_STRUCT=10;
    public static final int BIT_XOR=182;
    public static final int BLOCK=63;
    public static final int POST=167;
    public static final int ON_SESSION=96;
    public static final int START=177;
    public static final int FUNCTION_METHOD_DECL=23;
    public static final int INTERFACE=129;
    public static final int DIV=192;
    public static final int T__232=232;
    public static final int T__231=231;
    public static final int CLASS_CONSTRUCTOR_CALL=26;
    public static final int FLOATLITERAL=209;
    public static final int PUBLIC=205;
    public static final int SELF=196;
    public static final int T__234=234;
    public static final int T__233=233;
    public static final int T__230=230;
    public static final int SUPER_CONSTRUCTOR_CALL=28;
    public static final int LT=187;
    public static final int WHILE=162;
    public static final int CASE=161;
    public static final int NEW=195;
    public static final int SO_FAILOVER=68;
    public static final int METHOD_COMPLETION=30;
    public static final int ARRAY_ELEMENT_ACCESS=52;
    public static final int VIRTUAL_ATTRIBUTE=39;
    public static final int METHOD_IMPLEMENTATION=32;
    public static final int WHEN_EXCEPTION=51;
    public static final int EXTENDED=137;
    public static final int HAS=116;
    public static final int SQL=210;
    public static final int BIT_OR=181;
    public static final int PROP_CL=76;
    public static final int INHERITS=139;
    public static final int NAME_TYPE=94;
    public static final int VOID_METHOD_DECL=24;
    public static final int SQL_GROUP_BY=103;
    public static final int PARAMETER=44;
    public static final int RAISE=166;
    public static final int SUPER=197;
    public static final int ATTRIBUTE_DECLARATION=40;
    public static final int POINTER_TYPE=62;
    public static final int COMMENT=219;
    public static final int PREREGISTER=169;
    public static final int ARRAY=241;
    public static final int POSTREGISTER=170;
    public static final int HexPrefix=224;
    public static final int EXCEPTION=150;
    public static final int EXIT=159;
    public static final int C_ARRAY_RANGE=199;
    public static final int SQL_VARIABLE=97;
    public static final int LINE_COMMENT=220;
    public static final int PROJECT=4;
    public static final int PRIVATE=204;
    public static final int BLOCK_SCOPE=13;
    public static final int IDENTIDENTIFIER=237;
    public static final int SO_DIALOG=67;
    public static final int TASK=178;
    public static final int MULT=191;
    public static final int TRANSACTIONAL=90;
    public static final int OF=198;
    public static final int METHOD_CALL=25;
    public static final int PROP_INTERNAL=80;
    public static final int WHEN_EVENT=49;
    public static final int FRAMEWORK=244;
    public static final int NIL=134;
    public static final int WIDGETIDENTFIER=145;
    public static final int PROJ_PROP=75;
    public static final int PROPERTY=117;
    public static final int FOR_COUNT=19;
    public static final int OR=179;
    public static final int FROM=112;
    public static final int FALSE=203;
    public static final int INTERFACE_DECLARATION=43;
    public static final int CURSOR=130;
    public static final int LARAGEARRAY=242;
    public static final int EscapeSequence=217;
    public static final int SO_LOADBALANCE=69;
    public static final int OUTPUT=176;
    public static final int PROP_PROJ_TYPE=77;
    public static final int WHERE=147;
    public static final int EVENT_HANDLER_DECLARATION=35;
    public static final int CLASS=122;
    public static final int PROP_START_METHOD=82;
    public static final int FORWARD=126;
    public static final int BIT_AND=183;
    public static final int GENERATED=143;
    public static final int IntegerNumber=223;
    public static final int INDEPENDENT=240;
    public static final int ATTRIBUTE=144;
    public static final int FOR=154;
    public static final int DISTRIBUTED=87;
    public static final int DOTDOT=218;
    public static final int EVENT_HANDLER_IMPLEMENTATION=36;
    public static final int AND=180;
    public static final int IF=163;
    public static final int T__292=292;
    public static final int EXPR=18;
    public static final int T__291=291;
    public static final int IN=155;
    public static final int T__290=290;
    public static final int T__296=296;
    public static final int CONTINUE=160;
    public static final int SQL_ORDER_BY=104;
    public static final int T__295=295;
    public static final int COMMA=123;
    public static final int T__294=294;
    public static final int IS=127;
    public static final int T__293=293;
    public static final int COPY=174;
    public static final int IDENTIFIER=111;
    public static final int SQL_CURSOR_NEXT=106;
    public static final int T__298=298;
    public static final int T__297=297;
    public static final int FORWARD_MAPPED_CLASS=7;
    public static final int FORWARD_CURSOR=9;
    public static final int ARGUMENT_LIST=15;
    public static final int QUALIFIED_TYPE_IDENT=60;
    public static final int GENERICARRAY=243;
    public static final int SQL_INSERT=107;
    public static final int PROP_RESTRICTED=78;
    public static final int DIGIT=216;
    public static final int RBRACKET=213;
    public static final int DOT=133;
    public static final int FORMAL_PARAM_LIST=22;
    public static final int C_ARRAY=33;
    public static final int XOR=236;
    public static final int PARENTESIZED_EXPR=55;
    public static final int PLAN_TYPE=45;
    public static final int ARRAY_DECLARATOR_LIST=54;
    public static final int DEFAULT=89;
    public static final int STRUCT=131;
    public static final int GTEQ=186;
    public static final int EVENT=151;
    public static final int LOCAL_DECLARATION=48;
    public static final int TRUE=206;
    public static final int SQL_DO=235;
    public static final int ELSEIF=165;
    public static final int NESTED=239;
    public static final int SUPPLIER_PLANS=11;
    public static final int PROJECT_TYPE=5;
    public static final int LABEL=47;
    public static final int OVERRIDE=85;
    public static final int CHANGED=202;
    public static final int NO_PARAM_NAME=93;
    public static final int FOR_EACH=20;
    public static final int METHOD=124;
    public static final int SQL_UPDATE=108;
    public static final int EVENT_CASE=37;

    // delegates
    // delegators


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

    public String[] getTokenNames() { return ForteCDFTree.tokenNames; }
    public String getGrammarFileName() { return "/Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g"; }


      private IProject eclipseProject;
      private IResource sourceResource;
    
       public ForteCDFTree(IResource sourceResource, TreeNodeStream input){
        super(input);
        this.eclipseProject = sourceResource.getProject();
        this.sourceResource = sourceResource;
      }
    



    // $ANTLR start "interfaceDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:46:1: interfaceDeclaration : ^( INTERFACE_DECLARATION IDENTIFIER ( objectType )? ( component_definition )* ( classProperties )+ ) ;
    public final void interfaceDeclaration() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:47:2: ( ^( INTERFACE_DECLARATION IDENTIFIER ( objectType )? ( component_definition )* ( classProperties )+ ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:47:4: ^( INTERFACE_DECLARATION IDENTIFIER ( objectType )? ( component_definition )* ( classProperties )+ )
            {
            match(input,INTERFACE_DECLARATION,FOLLOW_INTERFACE_DECLARATION_in_interfaceDeclaration74); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_interfaceDeclaration76); if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:47:39: ( objectType )?
            int alt1=2;
            int LA1_0 = input.LA(1);

            if ( (LA1_0==TYPE) ) {
                alt1=1;
            }
            switch (alt1) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: objectType
                    {
                    pushFollow(FOLLOW_objectType_in_interfaceDeclaration78);
                    objectType();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:48:6: ( component_definition )*
            loop2:
            do {
                int alt2=2;
                int LA2_0 = input.LA(1);

                if ( (LA2_0==METHOD_DECLARATION||(LA2_0>=EVENT_DECLARATION && LA2_0<=EVENT_HANDLER_DECLARATION)||(LA2_0>=VIRTUAL_ATTRIBUTE && LA2_0<=ATTRIBUTE_DECLARATION)||LA2_0==CONSTANT) ) {
                    alt2=1;
                }


                switch (alt2) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: component_definition
                  {
                  pushFollow(FOLLOW_component_definition_in_interfaceDeclaration87);
                  component_definition();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  break loop2;
                }
            } while (true);

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:48:28: ( classProperties )+
            int cnt3=0;
            loop3:
            do {
                int alt3=2;
                int LA3_0 = input.LA(1);

                if ( (LA3_0==PROP_RESTRICTED||LA3_0==PROP_INTERNAL||(LA3_0>=DISTRIBUTED && LA3_0<=SHARED)||(LA3_0>=TRANSACTIONAL && LA3_0<=CLASSLINEAGE)||LA3_0==PROPERTY||LA3_0==EXTENDED) ) {
                    alt3=1;
                }


                switch (alt3) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: classProperties
                  {
                  pushFollow(FOLLOW_classProperties_in_interfaceDeclaration90);
                  classProperties();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt3 >= 1 ) break loop3;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(3, input);
                        throw eee;
                }
                cnt3++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "interfaceDeclaration"

    protected static class classDeclaration_scope {
        ToolClass currentClass;
    }
    protected Stack classDeclaration_stack = new Stack();

    public static class classDeclaration_return extends TreeRuleReturnScope {
        public ToolClass toolClass;
    };

    // $ANTLR start "classDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:56:1: classDeclaration returns [ToolClass toolClass] : ^( CLASS_DECLARATION IDENTIFIER ( isMappedClass )? superT= qualifiedType ( cEnum )* ( component_definition )* ( ^( IMPLEMENTS qualifiedType ) )* ( classProperties )+ ( STRINGLITERAL )? ) ;
    public final ForteCDFTree.classDeclaration_return classDeclaration() throws RecognitionException {
        classDeclaration_stack.push(new classDeclaration_scope());
        ForteCDFTree.classDeclaration_return retval = new ForteCDFTree.classDeclaration_return();
        retval.start = input.LT(1);

        CommonTree IDENTIFIER1=null;
        ForteCDFTree.qualifiedType_return superT = null;

        ForteCDFTree.isMappedClass_return isMappedClass2 = null;


        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:64:5: ( ^( CLASS_DECLARATION IDENTIFIER ( isMappedClass )? superT= qualifiedType ( cEnum )* ( component_definition )* ( ^( IMPLEMENTS qualifiedType ) )* ( classProperties )+ ( STRINGLITERAL )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:64:7: ^( CLASS_DECLARATION IDENTIFIER ( isMappedClass )? superT= qualifiedType ( cEnum )* ( component_definition )* ( ^( IMPLEMENTS qualifiedType ) )* ( classProperties )+ ( STRINGLITERAL )? )
            {
            match(input,CLASS_DECLARATION,FOLLOW_CLASS_DECLARATION_in_classDeclaration128); if (state.failed) return retval;

            match(input, Token.DOWN, null); if (state.failed) return retval;
            IDENTIFIER1=(CommonTree)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_classDeclaration130); if (state.failed) return retval;
            if ( state.backtracking==0 ) {
              
                    ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass = new ToolClass((IDENTIFIER1!=null?IDENTIFIER1.getText():null));
                    retval.toolClass = ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass;
                    ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.setToolName(((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.xlateName((IDENTIFIER1!=null?IDENTIFIER1.getText():null)));
                 
            }
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:70:5: ( isMappedClass )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==MAPPED) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:70:6: isMappedClass
                    {
                    pushFollow(FOLLOW_isMappedClass_in_classDeclaration144);
                    isMappedClass2=isMappedClass();

                    state._fsp--;
                    if (state.failed) return retval;
                    if ( state.backtracking==0 ) {
                       ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.setMapped(Boolean.parseBoolean((isMappedClass2!=null?(input.getTokenStream().toString(
                        input.getTreeAdaptor().getTokenStartIndex(isMappedClass2.start),
                        input.getTreeAdaptor().getTokenStopIndex(isMappedClass2.start))):null)));
                    }

                    }
                    break;

            }

            pushFollow(FOLLOW_qualifiedType_in_classDeclaration166);
            superT=qualifiedType();

            state._fsp--;
            if (state.failed) return retval;
            if ( state.backtracking==0 ) {
               ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.setSuperClass(((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.xlateName((superT!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(superT.start),
                input.getTreeAdaptor().getTokenStopIndex(superT.start))):null)));
            }
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:75:5: ( cEnum )*
            loop5:
            do {
                int alt5=2;
                int LA5_0 = input.LA(1);

                if ( (LA5_0==ENUM) ) {
                    alt5=1;
                }


                switch (alt5) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: cEnum
                  {
                  pushFollow(FOLLOW_cEnum_in_classDeclaration179);
                  cEnum();

                  state._fsp--;
                  if (state.failed) return retval;

                  }
                  break;

              default :
                  break loop5;
                }
            } while (true);

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:76:5: ( component_definition )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==METHOD_DECLARATION||(LA6_0>=EVENT_DECLARATION && LA6_0<=EVENT_HANDLER_DECLARATION)||(LA6_0>=VIRTUAL_ATTRIBUTE && LA6_0<=ATTRIBUTE_DECLARATION)||LA6_0==CONSTANT) ) {
                    alt6=1;
                }


                switch (alt6) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: component_definition
                  {
                  pushFollow(FOLLOW_component_definition_in_classDeclaration186);
                  component_definition();

                  state._fsp--;
                  if (state.failed) return retval;

                  }
                  break;

              default :
                  break loop6;
                }
            } while (true);

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:77:5: ( ^( IMPLEMENTS qualifiedType ) )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( (LA7_0==IMPLEMENTS) ) {
                    alt7=1;
                }


                switch (alt7) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:77:6: ^( IMPLEMENTS qualifiedType )
                  {
                  match(input,IMPLEMENTS,FOLLOW_IMPLEMENTS_in_classDeclaration196); if (state.failed) return retval;

                  match(input, Token.DOWN, null); if (state.failed) return retval;
                  pushFollow(FOLLOW_qualifiedType_in_classDeclaration198);
                  qualifiedType();

                  state._fsp--;
                  if (state.failed) return retval;

                  match(input, Token.UP, null); if (state.failed) return retval;

                  }
                  break;

              default :
                  break loop7;
                }
            } while (true);

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:78:5: ( classProperties )+
            int cnt8=0;
            loop8:
            do {
                int alt8=2;
                int LA8_0 = input.LA(1);

                if ( (LA8_0==PROP_RESTRICTED||LA8_0==PROP_INTERNAL||(LA8_0>=DISTRIBUTED && LA8_0<=SHARED)||(LA8_0>=TRANSACTIONAL && LA8_0<=CLASSLINEAGE)||LA8_0==PROPERTY||LA8_0==EXTENDED) ) {
                    alt8=1;
                }


                switch (alt8) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: classProperties
                  {
                  pushFollow(FOLLOW_classProperties_in_classDeclaration208);
                  classProperties();

                  state._fsp--;
                  if (state.failed) return retval;

                  }
                  break;

              default :
                  if ( cnt8 >= 1 ) break loop8;
                  if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(8, input);
                        throw eee;
                }
                cnt8++;
            } while (true);

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:78:22: ( STRINGLITERAL )?
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==STRINGLITERAL) ) {
                alt9=1;
            }
            switch (alt9) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: STRINGLITERAL
                    {
                    match(input,STRINGLITERAL,FOLLOW_STRINGLITERAL_in_classDeclaration211); if (state.failed) return retval;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return retval;

            }

            if ( state.backtracking==0 ) {

                ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.source = input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(retval.start),
                input.getTreeAdaptor().getTokenStopIndex(retval.start));
               
               
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
            classDeclaration_stack.pop();
        }
        return retval;
    }
    // $ANTLR end "classDeclaration"

    public static class isMappedClass_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "isMappedClass"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:82:1: isMappedClass : MAPPED ;
    public final ForteCDFTree.isMappedClass_return isMappedClass() throws RecognitionException {
        ForteCDFTree.isMappedClass_return retval = new ForteCDFTree.isMappedClass_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:83:3: ( MAPPED )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:83:5: MAPPED
            {
            match(input,MAPPED,FOLLOW_MAPPED_in_isMappedClass233); if (state.failed) return retval;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "isMappedClass"


    // $ANTLR start "component_definition"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:86:1: component_definition : ( attributeDeclaration | windowAttributeDeclaration | virtualAttributeDeclaration | eventDeclaration | methodDeclaration | eventHandlerDeclaration | constantDeclaration[false] );
    public final void component_definition() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:87:3: ( attributeDeclaration | windowAttributeDeclaration | virtualAttributeDeclaration | eventDeclaration | methodDeclaration | eventHandlerDeclaration | constantDeclaration[false] )
            int alt10=7;
            alt10 = dfa10.predict(input);
            switch (alt10) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:87:5: attributeDeclaration
                    {
                    pushFollow(FOLLOW_attributeDeclaration_in_component_definition246);
                    attributeDeclaration();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:88:5: windowAttributeDeclaration
                    {
                    pushFollow(FOLLOW_windowAttributeDeclaration_in_component_definition252);
                    windowAttributeDeclaration();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:89:5: virtualAttributeDeclaration
                    {
                    pushFollow(FOLLOW_virtualAttributeDeclaration_in_component_definition258);
                    virtualAttributeDeclaration();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:90:5: eventDeclaration
                    {
                    pushFollow(FOLLOW_eventDeclaration_in_component_definition264);
                    eventDeclaration();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:91:5: methodDeclaration
                    {
                    pushFollow(FOLLOW_methodDeclaration_in_component_definition270);
                    methodDeclaration();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:92:5: eventHandlerDeclaration
                    {
                    pushFollow(FOLLOW_eventHandlerDeclaration_in_component_definition276);
                    eventHandlerDeclaration();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:93:5: constantDeclaration[false]
                    {
                    pushFollow(FOLLOW_constantDeclaration_in_component_definition282);
                    constantDeclaration(false);

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "component_definition"


    // $ANTLR start "attributeDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:100:1: attributeDeclaration returns [ToolAttribute att] : ^( ATTRIBUTE_DECLARATION modifier name type ( GENERATED )? ) ;
    public final ToolAttribute attributeDeclaration() throws RecognitionException {
        ToolAttribute att = null;

        ForteCDFTree.name_return name3 = null;

        ForteCDFTree.type_return type4 = null;

        ForteCDFTree.modifier_return modifier5 = null;


        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:101:3: ( ^( ATTRIBUTE_DECLARATION modifier name type ( GENERATED )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:101:5: ^( ATTRIBUTE_DECLARATION modifier name type ( GENERATED )? )
            {
            match(input,ATTRIBUTE_DECLARATION,FOLLOW_ATTRIBUTE_DECLARATION_in_attributeDeclaration305); if (state.failed) return att;

            match(input, Token.DOWN, null); if (state.failed) return att;
            pushFollow(FOLLOW_modifier_in_attributeDeclaration307);
            modifier5=modifier();

            state._fsp--;
            if (state.failed) return att;
            pushFollow(FOLLOW_name_in_attributeDeclaration309);
            name3=name();

            state._fsp--;
            if (state.failed) return att;
            pushFollow(FOLLOW_type_in_attributeDeclaration311);
            type4=type();

            state._fsp--;
            if (state.failed) return att;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:101:49: ( GENERATED )?
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==GENERATED) ) {
                alt11=1;
            }
            switch (alt11) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: GENERATED
                    {
                    match(input,GENERATED,FOLLOW_GENERATED_in_attributeDeclaration314); if (state.failed) return att;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return att;
            if ( state.backtracking==0 ) {

                att = new ToolAttribute(((classDeclaration_scope)classDeclaration_stack.peek()).currentClass);
                att.setToolName((name3!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(name3.start),
                input.getTreeAdaptor().getTokenStopIndex(name3.start))):null));
                att.setType((type4!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(type4.start),
                input.getTreeAdaptor().getTokenStopIndex(type4.start))):null));
                att.setVisability((modifier5!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(modifier5.start),
                input.getTreeAdaptor().getTokenStopIndex(modifier5.start))):null));
                ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.add(att);
               
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return att;
    }
    // $ANTLR end "attributeDeclaration"


    // $ANTLR start "windowAttributeDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:112:1: windowAttributeDeclaration : ^( ATTRIBUTE_DECLARATION modifier WIDGETIDENTFIER type GENERATED ) ;
    public final void windowAttributeDeclaration() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:113:2: ( ^( ATTRIBUTE_DECLARATION modifier WIDGETIDENTFIER type GENERATED ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:113:4: ^( ATTRIBUTE_DECLARATION modifier WIDGETIDENTFIER type GENERATED )
            {
            match(input,ATTRIBUTE_DECLARATION,FOLLOW_ATTRIBUTE_DECLARATION_in_windowAttributeDeclaration336); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_modifier_in_windowAttributeDeclaration338);
            modifier();

            state._fsp--;
            if (state.failed) return ;
            match(input,WIDGETIDENTFIER,FOLLOW_WIDGETIDENTFIER_in_windowAttributeDeclaration340); if (state.failed) return ;
            pushFollow(FOLLOW_type_in_windowAttributeDeclaration342);
            type();

            state._fsp--;
            if (state.failed) return ;
            match(input,GENERATED,FOLLOW_GENERATED_in_windowAttributeDeclaration345); if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "windowAttributeDeclaration"


    // $ANTLR start "virtualAttributeDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:116:1: virtualAttributeDeclaration returns [ToolVirtualAttribute att] : ^( VIRTUAL_ATTRIBUTE modifier name type getExpression ( setExpression )? ) ;
    public final ToolVirtualAttribute virtualAttributeDeclaration() throws RecognitionException {
        ToolVirtualAttribute att = null;

        ForteCDFTree.name_return name6 = null;

        ForteCDFTree.type_return type7 = null;

        ForteCDFTree.modifier_return modifier8 = null;

        ForteCDFTree.getExpression_return getExpression9 = null;

        ForteCDFTree.setExpression_return setExpression10 = null;


        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:117:2: ( ^( VIRTUAL_ATTRIBUTE modifier name type getExpression ( setExpression )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:117:4: ^( VIRTUAL_ATTRIBUTE modifier name type getExpression ( setExpression )? )
            {
            match(input,VIRTUAL_ATTRIBUTE,FOLLOW_VIRTUAL_ATTRIBUTE_in_virtualAttributeDeclaration362); if (state.failed) return att;

            match(input, Token.DOWN, null); if (state.failed) return att;
            pushFollow(FOLLOW_modifier_in_virtualAttributeDeclaration364);
            modifier8=modifier();

            state._fsp--;
            if (state.failed) return att;
            pushFollow(FOLLOW_name_in_virtualAttributeDeclaration366);
            name6=name();

            state._fsp--;
            if (state.failed) return att;
            pushFollow(FOLLOW_type_in_virtualAttributeDeclaration368);
            type7=type();

            state._fsp--;
            if (state.failed) return att;
            pushFollow(FOLLOW_getExpression_in_virtualAttributeDeclaration371);
            getExpression9=getExpression();

            state._fsp--;
            if (state.failed) return att;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:117:58: ( setExpression )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( (LA12_0==SET_EXPRESSION) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: setExpression
                    {
                    pushFollow(FOLLOW_setExpression_in_virtualAttributeDeclaration373);
                    setExpression10=setExpression();

                    state._fsp--;
                    if (state.failed) return att;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return att;
            if ( state.backtracking==0 ) {

                att = new ToolVirtualAttribute(((classDeclaration_scope)classDeclaration_stack.peek()).currentClass);
                att.setToolName((name6!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(name6.start),
                input.getTreeAdaptor().getTokenStopIndex(name6.start))):null));
                att.setType((type7!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(type7.start),
                input.getTreeAdaptor().getTokenStopIndex(type7.start))):null));
                att.setVisability((modifier8!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(modifier8.start),
                input.getTreeAdaptor().getTokenStopIndex(modifier8.start))):null));
                att.setGetExpression((getExpression9!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(getExpression9.start),
                input.getTreeAdaptor().getTokenStopIndex(getExpression9.start))):null));
                att.setSetExpression((setExpression10!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(setExpression10.start),
                input.getTreeAdaptor().getTokenStopIndex(setExpression10.start))):null));
                ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.add(att);
               
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return att;
    }
    // $ANTLR end "virtualAttributeDeclaration"

    public static class getExpression_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "getExpression"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:130:1: getExpression : ^( GET_EXPRESSION expression ) ;
    public final ForteCDFTree.getExpression_return getExpression() throws RecognitionException {
        ForteCDFTree.getExpression_return retval = new ForteCDFTree.getExpression_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:131:2: ( ^( GET_EXPRESSION expression ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:131:4: ^( GET_EXPRESSION expression )
            {
            match(input,GET_EXPRESSION,FOLLOW_GET_EXPRESSION_in_getExpression393); if (state.failed) return retval;

            match(input, Token.DOWN, null); if (state.failed) return retval;
            pushFollow(FOLLOW_expression_in_getExpression395);
            expression();

            state._fsp--;
            if (state.failed) return retval;

            match(input, Token.UP, null); if (state.failed) return retval;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "getExpression"

    public static class setExpression_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "setExpression"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:134:1: setExpression : ^( SET_EXPRESSION expression ) ;
    public final ForteCDFTree.setExpression_return setExpression() throws RecognitionException {
        ForteCDFTree.setExpression_return retval = new ForteCDFTree.setExpression_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:135:2: ( ^( SET_EXPRESSION expression ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:135:4: ^( SET_EXPRESSION expression )
            {
            match(input,SET_EXPRESSION,FOLLOW_SET_EXPRESSION_in_setExpression409); if (state.failed) return retval;

            match(input, Token.DOWN, null); if (state.failed) return retval;
            pushFollow(FOLLOW_expression_in_setExpression411);
            expression();

            state._fsp--;
            if (state.failed) return retval;

            match(input, Token.UP, null); if (state.failed) return retval;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "setExpression"

    protected static class methodDeclaration_scope {
        ToolMethod currentMethod;
    }
    protected Stack methodDeclaration_stack = new Stack();


    // $ANTLR start "methodDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:139:1: methodDeclaration returns [ToolMethod toolMethod] : ^( METHOD_DECLARATION modifier qualifiedName ( formalParameterDecls )? ( methodReturnDeclaration )? ( methodCompletion )? ) ;
    public final ToolMethod methodDeclaration() throws RecognitionException {
        methodDeclaration_stack.push(new methodDeclaration_scope());
        ToolMethod toolMethod = null;

        ForteCDFTree.qualifiedName_return qualifiedName11 = null;

        ForteCDFTree.modifier_return modifier12 = null;


        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:146:2: ( ^( METHOD_DECLARATION modifier qualifiedName ( formalParameterDecls )? ( methodReturnDeclaration )? ( methodCompletion )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:146:4: ^( METHOD_DECLARATION modifier qualifiedName ( formalParameterDecls )? ( methodReturnDeclaration )? ( methodCompletion )? )
            {
            match(input,METHOD_DECLARATION,FOLLOW_METHOD_DECLARATION_in_methodDeclaration440); if (state.failed) return toolMethod;

            if ( state.backtracking==0 ) {

                ((methodDeclaration_scope)methodDeclaration_stack.peek()).currentMethod = new ToolMethod(((classDeclaration_scope)classDeclaration_stack.peek()).currentClass);
               
            }

            match(input, Token.DOWN, null); if (state.failed) return toolMethod;
            pushFollow(FOLLOW_modifier_in_methodDeclaration447);
            modifier12=modifier();

            state._fsp--;
            if (state.failed) return toolMethod;
            pushFollow(FOLLOW_qualifiedName_in_methodDeclaration449);
            qualifiedName11=qualifiedName();

            state._fsp--;
            if (state.failed) return toolMethod;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:150:26: ( formalParameterDecls )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==PARAMETER) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: formalParameterDecls
                    {
                    pushFollow(FOLLOW_formalParameterDecls_in_methodDeclaration452);
                    formalParameterDecls();

                    state._fsp--;
                    if (state.failed) return toolMethod;

                    }
                    break;

            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:151:12: ( methodReturnDeclaration )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==RETURN) ) {
                alt14=1;
            }
            switch (alt14) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: methodReturnDeclaration
                    {
                    pushFollow(FOLLOW_methodReturnDeclaration_in_methodDeclaration467);
                    methodReturnDeclaration();

                    state._fsp--;
                    if (state.failed) return toolMethod;

                    }
                    break;

            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:152:12: ( methodCompletion )?
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( (LA15_0==METHOD_COMPLETION) ) {
                alt15=1;
            }
            switch (alt15) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: methodCompletion
                    {
                    pushFollow(FOLLOW_methodCompletion_in_methodDeclaration482);
                    methodCompletion();

                    state._fsp--;
                    if (state.failed) return toolMethod;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return toolMethod;
            if ( state.backtracking==0 ) {

                ((methodDeclaration_scope)methodDeclaration_stack.peek()).currentMethod.setToolName((qualifiedName11!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(qualifiedName11.start),
                input.getTreeAdaptor().getTokenStopIndex(qualifiedName11.start))):null));
                ((methodDeclaration_scope)methodDeclaration_stack.peek()).currentMethod.setVisability((modifier12!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(modifier12.start),
                input.getTreeAdaptor().getTokenStopIndex(modifier12.start))):null));
                ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.add(((methodDeclaration_scope)methodDeclaration_stack.peek()).currentMethod);
               
            }

            }

            if ( state.backtracking==0 ) {

                toolMethod = ((methodDeclaration_scope)methodDeclaration_stack.peek()).currentMethod;
               
            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
            methodDeclaration_stack.pop();
        }
        return toolMethod;
    }
    // $ANTLR end "methodDeclaration"


    // $ANTLR start "methodCompletion"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:159:1: methodCompletion : ^( METHOD_COMPLETION IDENTIFIER ( IDENTIFIER )? ) ;
    public final void methodCompletion() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:160:2: ( ^( METHOD_COMPLETION IDENTIFIER ( IDENTIFIER )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:160:4: ^( METHOD_COMPLETION IDENTIFIER ( IDENTIFIER )? )
            {
            match(input,METHOD_COMPLETION,FOLLOW_METHOD_COMPLETION_in_methodCompletion499); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_methodCompletion501); if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:160:35: ( IDENTIFIER )?
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==IDENTIFIER) ) {
                alt16=1;
            }
            switch (alt16) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: IDENTIFIER
                    {
                    match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_methodCompletion503); if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "methodCompletion"


    // $ANTLR start "methodImplementation"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:163:1: methodImplementation : ^( METHOD_IMPLEMENTATION qualifiedName ( formalParameters )? ( methodReturnDeclaration )? ( statement )* ( exceptionBlock )? ) ;
    public final void methodImplementation() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:164:2: ( ^( METHOD_IMPLEMENTATION qualifiedName ( formalParameters )? ( methodReturnDeclaration )? ( statement )* ( exceptionBlock )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:164:4: ^( METHOD_IMPLEMENTATION qualifiedName ( formalParameters )? ( methodReturnDeclaration )? ( statement )* ( exceptionBlock )? )
            {
            match(input,METHOD_IMPLEMENTATION,FOLLOW_METHOD_IMPLEMENTATION_in_methodImplementation518); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_qualifiedName_in_methodImplementation525);
            qualifiedName();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:166:5: ( formalParameters )?
            int alt17=2;
            alt17 = dfa17.predict(input);
            switch (alt17) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: formalParameters
                    {
                    pushFollow(FOLLOW_formalParameters_in_methodImplementation532);
                    formalParameters();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:167:5: ( methodReturnDeclaration )?
            int alt18=2;
            int LA18_0 = input.LA(1);

            if ( (LA18_0==RETURN) ) {
                int LA18_1 = input.LA(2);

                if ( (LA18_1==DOWN) ) {
                    int LA18_3 = input.LA(3);

                    if ( ((LA18_3>=TYPE && LA18_3<=ARRAY_TYPE)||LA18_3==POINTER_TYPE||LA18_3==STRUCT||LA18_3==ENUM||LA18_3==249||(LA18_3>=251 && LA18_3<=257)||LA18_3==261||(LA18_3>=264 && LA18_3<=265)) ) {
                        alt18=1;
                    }
                }
            }
            switch (alt18) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: methodReturnDeclaration
                    {
                    pushFollow(FOLLOW_methodReturnDeclaration_in_methodImplementation540);
                    methodReturnDeclaration();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:168:5: ( statement )*
            loop19:
            do {
                int alt19=2;
                int LA19_0 = input.LA(1);

                if ( (LA19_0==EXPR||(LA19_0>=EVENT_CASE && LA19_0<=EVENT_LOOP)||LA19_0==START_TASK||LA19_0==LOCAL_DECLARATION||LA19_0==BLOCK||LA19_0==RETURN||(LA19_0>=CONSTANT && LA19_0<=FOR)||(LA19_0>=EXIT && LA19_0<=IF)||(LA19_0>=RAISE && LA19_0<=POST)||LA19_0==SQL||LA19_0==SQL_DO) ) {
                    alt19=1;
                }


                switch (alt19) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                  {
                  pushFollow(FOLLOW_statement_in_methodImplementation548);
                  statement();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  break loop19;
                }
            } while (true);

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:169:5: ( exceptionBlock )?
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( (LA20_0==EXCEPTION) ) {
                alt20=1;
            }
            switch (alt20) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: exceptionBlock
                    {
                    pushFollow(FOLLOW_exceptionBlock_in_methodImplementation556);
                    exceptionBlock();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "methodImplementation"


    // $ANTLR start "eventHandlerDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:172:1: eventHandlerDeclaration returns [ToolEventHandler eventHandler] : ^( EVENT_HANDLER_DECLARATION modifier IDENTIFIER ( formalParameterDecls )? ) ;
    public final ToolEventHandler eventHandlerDeclaration() throws RecognitionException {
        ToolEventHandler eventHandler = null;

        CommonTree IDENTIFIER13=null;

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:173:2: ( ^( EVENT_HANDLER_DECLARATION modifier IDENTIFIER ( formalParameterDecls )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:173:4: ^( EVENT_HANDLER_DECLARATION modifier IDENTIFIER ( formalParameterDecls )? )
            {
            match(input,EVENT_HANDLER_DECLARATION,FOLLOW_EVENT_HANDLER_DECLARATION_in_eventHandlerDeclaration575); if (state.failed) return eventHandler;

            match(input, Token.DOWN, null); if (state.failed) return eventHandler;
            pushFollow(FOLLOW_modifier_in_eventHandlerDeclaration577);
            modifier();

            state._fsp--;
            if (state.failed) return eventHandler;
            IDENTIFIER13=(CommonTree)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_eventHandlerDeclaration579); if (state.failed) return eventHandler;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:173:53: ( formalParameterDecls )?
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( (LA21_0==PARAMETER) ) {
                alt21=1;
            }
            switch (alt21) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: formalParameterDecls
                    {
                    pushFollow(FOLLOW_formalParameterDecls_in_eventHandlerDeclaration582);
                    formalParameterDecls();

                    state._fsp--;
                    if (state.failed) return eventHandler;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return eventHandler;
            if ( state.backtracking==0 ) {

                eventHandler = new ToolEventHandler(((classDeclaration_scope)classDeclaration_stack.peek()).currentClass);
                eventHandler.setToolName((IDENTIFIER13!=null?IDENTIFIER13.getText():null));
                ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.add(eventHandler);
               
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return eventHandler;
    }
    // $ANTLR end "eventHandlerDeclaration"


    // $ANTLR start "eventHandlerImplementation"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:181:1: eventHandlerImplementation : ^( EVENT_HANDLER_IMPLEMENTATION qualifiedName ( formalParameters )? ( whenEvent )* ) ;
    public final void eventHandlerImplementation() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:182:3: ( ^( EVENT_HANDLER_IMPLEMENTATION qualifiedName ( formalParameters )? ( whenEvent )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:182:5: ^( EVENT_HANDLER_IMPLEMENTATION qualifiedName ( formalParameters )? ( whenEvent )* )
            {
            match(input,EVENT_HANDLER_IMPLEMENTATION,FOLLOW_EVENT_HANDLER_IMPLEMENTATION_in_eventHandlerImplementation601); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_qualifiedName_in_eventHandlerImplementation603);
            qualifiedName();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:182:50: ( formalParameters )?
            int alt22=2;
            switch ( input.LA(1) ) {
                case PARAMETER:
                    {
                    alt22=1;
                    }
                    break;
                case WHEN_EVENT:
                    {
                    int LA22_2 = input.LA(2);

                    if ( (synpred27_ForteCDFTree()) ) {
                        alt22=1;
                    }
                    }
                    break;
                case UP:
                    {
                    int LA22_3 = input.LA(2);

                    if ( (synpred27_ForteCDFTree()) ) {
                        alt22=1;
                    }
                    }
                    break;
            }

            switch (alt22) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: formalParameters
                    {
                    pushFollow(FOLLOW_formalParameters_in_eventHandlerImplementation605);
                    formalParameters();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:182:68: ( whenEvent )*
            loop23:
            do {
                int alt23=2;
                int LA23_0 = input.LA(1);

                if ( (LA23_0==WHEN_EVENT) ) {
                    alt23=1;
                }


                switch (alt23) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: whenEvent
                  {
                  pushFollow(FOLLOW_whenEvent_in_eventHandlerImplementation608);
                  whenEvent();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  break loop23;
                }
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "eventHandlerImplementation"


    // $ANTLR start "eventDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:185:1: eventDeclaration returns [ToolEvent event] : ^( EVENT_DECLARATION modifier IDENTIFIER ( formalParameterDecls )? ) ;
    public final ToolEvent eventDeclaration() throws RecognitionException {
        ToolEvent event = null;

        CommonTree IDENTIFIER14=null;

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:186:2: ( ^( EVENT_DECLARATION modifier IDENTIFIER ( formalParameterDecls )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:186:4: ^( EVENT_DECLARATION modifier IDENTIFIER ( formalParameterDecls )? )
            {
            match(input,EVENT_DECLARATION,FOLLOW_EVENT_DECLARATION_in_eventDeclaration627); if (state.failed) return event;

            match(input, Token.DOWN, null); if (state.failed) return event;
            pushFollow(FOLLOW_modifier_in_eventDeclaration629);
            modifier();

            state._fsp--;
            if (state.failed) return event;
            IDENTIFIER14=(CommonTree)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_eventDeclaration631); if (state.failed) return event;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:186:45: ( formalParameterDecls )?
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==PARAMETER) ) {
                alt24=1;
            }
            switch (alt24) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: formalParameterDecls
                    {
                    pushFollow(FOLLOW_formalParameterDecls_in_eventDeclaration634);
                    formalParameterDecls();

                    state._fsp--;
                    if (state.failed) return event;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return event;
            if ( state.backtracking==0 ) {

                event = new ToolEvent(((classDeclaration_scope)classDeclaration_stack.peek()).currentClass);
                event.setToolName((IDENTIFIER14!=null?IDENTIFIER14.getText():null));
                ((classDeclaration_scope)classDeclaration_stack.peek()).currentClass.add(event);
               
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return event;
    }
    // $ANTLR end "eventDeclaration"


    // $ANTLR start "constantDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:194:1: constantDeclaration[boolean planConstant] returns [ToolConstant toolConst] : ^( CONSTANT ( modifier )? IDENTIFIER literal ) ;
    public final ToolConstant constantDeclaration(boolean planConstant) throws RecognitionException {
        ToolConstant toolConst = null;

        CommonTree IDENTIFIER15=null;
        ForteCDFTree.literal_return literal16 = null;

        ForteCDFTree.modifier_return modifier17 = null;


        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:195:5: ( ^( CONSTANT ( modifier )? IDENTIFIER literal ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:195:7: ^( CONSTANT ( modifier )? IDENTIFIER literal )
            {
            match(input,CONSTANT,FOLLOW_CONSTANT_in_constantDeclaration658); if (state.failed) return toolConst;

            match(input, Token.DOWN, null); if (state.failed) return toolConst;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:195:18: ( modifier )?
            int alt25=2;
            int LA25_0 = input.LA(1);

            if ( ((LA25_0>=PRIVATE && LA25_0<=PUBLIC)||(LA25_0>=246 && LA25_0<=247)) ) {
                alt25=1;
            }
            switch (alt25) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: modifier
                    {
                    pushFollow(FOLLOW_modifier_in_constantDeclaration660);
                    modifier17=modifier();

                    state._fsp--;
                    if (state.failed) return toolConst;

                    }
                    break;

            }

            IDENTIFIER15=(CommonTree)match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_constantDeclaration663); if (state.failed) return toolConst;
            pushFollow(FOLLOW_literal_in_constantDeclaration665);
            literal16=literal();

            state._fsp--;
            if (state.failed) return toolConst;

            match(input, Token.UP, null); if (state.failed) return toolConst;
            if ( state.backtracking==0 ) {

                     toolConst = new ToolConstant(
                            (IDENTIFIER15!=null?IDENTIFIER15.getText():null)//Constant ID
                            (literal16!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(literal16.start),
                input.getTreeAdaptor().getTokenStopIndex(literal16.start))):null),    //Constant Value
                            (modifier17!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(modifier17.start),
                input.getTreeAdaptor().getTokenStopIndex(modifier17.start))):null),
                            planConstant); //Visibility
                   
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return toolConst;
    }
    // $ANTLR end "constantDeclaration"


    // $ANTLR start "declatrationTerminator"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:207:1: declatrationTerminator : ( ^( PROPERTY propertyList ) | );
    public final void declatrationTerminator() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:208:2: ( ^( PROPERTY propertyList ) | )
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( (LA26_0==PROPERTY) ) {
                alt26=1;
            }
            else if ( (LA26_0==EOF) ) {
                alt26=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 26, 0, input);

                throw nvae;
            }
            switch (alt26) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:208:4: ^( PROPERTY propertyList )
                    {
                    match(input,PROPERTY,FOLLOW_PROPERTY_in_declatrationTerminator693); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_propertyList_in_declatrationTerminator695);
                    propertyList();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:210:2:
                    {
                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "declatrationTerminator"


    // $ANTLR start "restricted"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:212:1: restricted returns [boolean rest] : ^( PROP_RESTRICTED booleanLiteral ) ;
    public final boolean restricted() throws RecognitionException {
        boolean rest = false;

        ForteCDFTree.booleanLiteral_return booleanLiteral18 = null;


        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:213:2: ( ^( PROP_RESTRICTED booleanLiteral ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:213:4: ^( PROP_RESTRICTED booleanLiteral )
            {
            match(input,PROP_RESTRICTED,FOLLOW_PROP_RESTRICTED_in_restricted715); if (state.failed) return rest;

            match(input, Token.DOWN, null); if (state.failed) return rest;
            pushFollow(FOLLOW_booleanLiteral_in_restricted717);
            booleanLiteral18=booleanLiteral();

            state._fsp--;
            if (state.failed) return rest;

            match(input, Token.UP, null); if (state.failed) return rest;
            if ( state.backtracking==0 ) {

                  rest = Boolean.parseBoolean((booleanLiteral18!=null?(input.getTokenStream().toString(
                input.getTreeAdaptor().getTokenStartIndex(booleanLiteral18.start),
                input.getTreeAdaptor().getTokenStopIndex(booleanLiteral18.start))):null));
                 
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return rest;
    }
    // $ANTLR end "restricted"


    // $ANTLR start "file"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:222:1: file : IDENTIFIER ;
    public final void file() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:223:2: ( IDENTIFIER )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:223:4: IDENTIFIER
            {
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_file737); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "file"


    // $ANTLR start "onOff"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:225:1: onOff : IDENTIFIER ;
    public final void onOff() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:226:2: ( IDENTIFIER )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:226:5: IDENTIFIER
            {
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_onOff748); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "onOff"


    // $ANTLR start "superName"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:228:1: superName : IDENTIFIER ;
    public final void superName() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:229:2: ( IDENTIFIER )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:229:5: IDENTIFIER
            {
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_superName759); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "superName"


    // $ANTLR start "isDefault"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:231:1: isDefault : IDENTIFIER ;
    public final void isDefault() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:232:2: ( IDENTIFIER )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:232:5: IDENTIFIER
            {
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_isDefault770); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "isDefault"


    // $ANTLR start "classProperties"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:239:1: classProperties : ( ^( SHARED ( classPropertyDetail )+ ) | ^( TRANSACTIONAL ( classPropertyDetail )+ ) | ^( MONITORED ( classPropertyDetail )+ ) | restricted | ^( DISTRIBUTED ( classPropertyDetail )+ ) | ^( CLASSLINEAGE ( classLineageEntry )+ ) | property | extended_property | internal );
    public final void classProperties() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:240:2: ( ^( SHARED ( classPropertyDetail )+ ) | ^( TRANSACTIONAL ( classPropertyDetail )+ ) | ^( MONITORED ( classPropertyDetail )+ ) | restricted | ^( DISTRIBUTED ( classPropertyDetail )+ ) | ^( CLASSLINEAGE ( classLineageEntry )+ ) | property | extended_property | internal )
            int alt32=9;
            switch ( input.LA(1) ) {
            case SHARED:
                {
                alt32=1;
                }
                break;
            case TRANSACTIONAL:
                {
                alt32=2;
                }
                break;
            case MONITORED:
                {
                alt32=3;
                }
                break;
            case PROP_RESTRICTED:
                {
                alt32=4;
                }
                break;
            case DISTRIBUTED:
                {
                alt32=5;
                }
                break;
            case CLASSLINEAGE:
                {
                alt32=6;
                }
                break;
            case PROPERTY:
                {
                alt32=7;
                }
                break;
            case EXTENDED:
                {
                alt32=8;
                }
                break;
            case PROP_INTERNAL:
                {
                alt32=9;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 32, 0, input);

                throw nvae;
            }

            switch (alt32) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:240:4: ^( SHARED ( classPropertyDetail )+ )
                    {
                    match(input,SHARED,FOLLOW_SHARED_in_classProperties787); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:240:13: ( classPropertyDetail )+
                    int cnt27=0;
                    loop27:
                    do {
                        int alt27=2;
                        int LA27_0 = input.LA(1);

                        if ( ((LA27_0>=OVERRIDE && LA27_0<=ALLOW)||LA27_0==DEFAULT) ) {
                            alt27=1;
                        }


                        switch (alt27) {
                      case 1 :
                          // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: classPropertyDetail
                          {
                          pushFollow(FOLLOW_classPropertyDetail_in_classProperties789);
                          classPropertyDetail();

                          state._fsp--;
                          if (state.failed) return ;

                          }
                          break;

                      default :
                          if ( cnt27 >= 1 ) break loop27;
                          if (state.backtracking>0) {state.failed=true; return ;}
                                EarlyExitException eee =
                                    new EarlyExitException(27, input);
                                throw eee;
                        }
                        cnt27++;
                    } while (true);


                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:241:4: ^( TRANSACTIONAL ( classPropertyDetail )+ )
                    {
                    match(input,TRANSACTIONAL,FOLLOW_TRANSACTIONAL_in_classProperties797); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:241:20: ( classPropertyDetail )+
                    int cnt28=0;
                    loop28:
                    do {
                        int alt28=2;
                        int LA28_0 = input.LA(1);

                        if ( ((LA28_0>=OVERRIDE && LA28_0<=ALLOW)||LA28_0==DEFAULT) ) {
                            alt28=1;
                        }


                        switch (alt28) {
                      case 1 :
                          // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: classPropertyDetail
                          {
                          pushFollow(FOLLOW_classPropertyDetail_in_classProperties799);
                          classPropertyDetail();

                          state._fsp--;
                          if (state.failed) return ;

                          }
                          break;

                      default :
                          if ( cnt28 >= 1 ) break loop28;
                          if (state.backtracking>0) {state.failed=true; return ;}
                                EarlyExitException eee =
                                    new EarlyExitException(28, input);
                                throw eee;
                        }
                        cnt28++;
                    } while (true);


                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:242:4: ^( MONITORED ( classPropertyDetail )+ )
                    {
                    match(input,MONITORED,FOLLOW_MONITORED_in_classProperties807); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:242:16: ( classPropertyDetail )+
                    int cnt29=0;
                    loop29:
                    do {
                        int alt29=2;
                        int LA29_0 = input.LA(1);

                        if ( ((LA29_0>=OVERRIDE && LA29_0<=ALLOW)||LA29_0==DEFAULT) ) {
                            alt29=1;
                        }


                        switch (alt29) {
                      case 1 :
                          // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: classPropertyDetail
                          {
                          pushFollow(FOLLOW_classPropertyDetail_in_classProperties809);
                          classPropertyDetail();

                          state._fsp--;
                          if (state.failed) return ;

                          }
                          break;

                      default :
                          if ( cnt29 >= 1 ) break loop29;
                          if (state.backtracking>0) {state.failed=true; return ;}
                                EarlyExitException eee =
                                    new EarlyExitException(29, input);
                                throw eee;
                        }
                        cnt29++;
                    } while (true);


                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:243:4: restricted
                    {
                    pushFollow(FOLLOW_restricted_in_classProperties816);
                    restricted();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:244:4: ^( DISTRIBUTED ( classPropertyDetail )+ )
                    {
                    match(input,DISTRIBUTED,FOLLOW_DISTRIBUTED_in_classProperties823); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:244:18: ( classPropertyDetail )+
                    int cnt30=0;
                    loop30:
                    do {
                        int alt30=2;
                        int LA30_0 = input.LA(1);

                        if ( ((LA30_0>=OVERRIDE && LA30_0<=ALLOW)||LA30_0==DEFAULT) ) {
                            alt30=1;
                        }


                        switch (alt30) {
                      case 1 :
                          // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: classPropertyDetail
                          {
                          pushFollow(FOLLOW_classPropertyDetail_in_classProperties825);
                          classPropertyDetail();

                          state._fsp--;
                          if (state.failed) return ;

                          }
                          break;

                      default :
                          if ( cnt30 >= 1 ) break loop30;
                          if (state.backtracking>0) {state.failed=true; return ;}
                                EarlyExitException eee =
                                    new EarlyExitException(30, input);
                                throw eee;
                        }
                        cnt30++;
                    } while (true);


                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:245:4: ^( CLASSLINEAGE ( classLineageEntry )+ )
                    {
                    match(input,CLASSLINEAGE,FOLLOW_CLASSLINEAGE_in_classProperties833); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:245:19: ( classLineageEntry )+
                    int cnt31=0;
                    loop31:
                    do {
                        int alt31=2;
                        int LA31_0 = input.LA(1);

                        if ( (LA31_0==IDENTIFIER) ) {
                            alt31=1;
                        }


                        switch (alt31) {
                      case 1 :
                          // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: classLineageEntry
                          {
                          pushFollow(FOLLOW_classLineageEntry_in_classProperties835);
                          classLineageEntry();

                          state._fsp--;
                          if (state.failed) return ;

                          }
                          break;

                      default :
                          if ( cnt31 >= 1 ) break loop31;
                          if (state.backtracking>0) {state.failed=true; return ;}
                                EarlyExitException eee =
                                    new EarlyExitException(31, input);
                                throw eee;
                        }
                        cnt31++;
                    } while (true);


                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:246:4: property
                    {
                    pushFollow(FOLLOW_property_in_classProperties842);
                    property();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 8 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:247:4: extended_property
                    {
                    pushFollow(FOLLOW_extended_property_in_classProperties848);
                    extended_property();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 9 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:248:4: internal
                    {
                    pushFollow(FOLLOW_internal_in_classProperties854);
                    internal();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "classProperties"


    // $ANTLR start "classLineageEntry"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:252:1: classLineageEntry : ^( superName STRINGLITERAL ) ;
    public final void classLineageEntry() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:253:3: ( ^( superName STRINGLITERAL ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:253:5: ^( superName STRINGLITERAL )
            {
            pushFollow(FOLLOW_superName_in_classLineageEntry875);
            superName();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,STRINGLITERAL,FOLLOW_STRINGLITERAL_in_classLineageEntry877); if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "classLineageEntry"


    // $ANTLR start "classPropertyDetail"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:256:1: classPropertyDetail : ( ^( ALLOW onOff ) | ^( OVERRIDE onOff ) | ^( DEFAULT onOff ) );
    public final void classPropertyDetail() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:257:2: ( ^( ALLOW onOff ) | ^( OVERRIDE onOff ) | ^( DEFAULT onOff ) )
            int alt33=3;
            switch ( input.LA(1) ) {
            case ALLOW:
                {
                alt33=1;
                }
                break;
            case OVERRIDE:
                {
                alt33=2;
                }
                break;
            case DEFAULT:
                {
                alt33=3;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 33, 0, input);

                throw nvae;
            }

            switch (alt33) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:257:4: ^( ALLOW onOff )
                    {
                    match(input,ALLOW,FOLLOW_ALLOW_in_classPropertyDetail893); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_onOff_in_classPropertyDetail895);
                    onOff();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:258:4: ^( OVERRIDE onOff )
                    {
                    match(input,OVERRIDE,FOLLOW_OVERRIDE_in_classPropertyDetail907); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_onOff_in_classPropertyDetail909);
                    onOff();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:259:4: ^( DEFAULT onOff )
                    {
                    match(input,DEFAULT,FOLLOW_DEFAULT_in_classPropertyDetail918); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_onOff_in_classPropertyDetail920);
                    onOff();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "classPropertyDetail"


    // $ANTLR start "compound_property"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:262:1: compound_property : ^( PROPERTY propertyList ) ;
    public final void compound_property() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:263:2: ( ^( PROPERTY propertyList ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:263:4: ^( PROPERTY propertyList )
            {
            match(input,PROPERTY,FOLLOW_PROPERTY_in_compound_property940); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_propertyList_in_compound_property942);
            propertyList();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "compound_property"


    // $ANTLR start "extended_property"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:266:1: extended_property : ^( EXTENDED propertyList ) ;
    public final void extended_property() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:267:2: ( ^( EXTENDED propertyList ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:267:4: ^( EXTENDED propertyList )
            {
            match(input,EXTENDED,FOLLOW_EXTENDED_in_extended_property958); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_propertyList_in_extended_property960);
            propertyList();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "extended_property"


    // $ANTLR start "property"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:269:1: property : ^( PROPERTY IDENTIFIER literal ) ;
    public final void property() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:270:2: ( ^( PROPERTY IDENTIFIER literal ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:270:4: ^( PROPERTY IDENTIFIER literal )
            {
            match(input,PROPERTY,FOLLOW_PROPERTY_in_property972); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_property974); if (state.failed) return ;
            pushFollow(FOLLOW_literal_in_property976);
            literal();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "property"


    // $ANTLR start "propertyList"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:273:1: propertyList : ( property )+ ;
    public final void propertyList() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:274:2: ( ( property )+ )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:274:4: ( property )+
            {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:274:4: ( property )+
            int cnt34=0;
            loop34:
            do {
                int alt34=2;
                int LA34_0 = input.LA(1);

                if ( (LA34_0==PROPERTY) ) {
                    alt34=1;
                }


                switch (alt34) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: property
                  {
                  pushFollow(FOLLOW_property_in_propertyList988);
                  property();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt34 >= 1 ) break loop34;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(34, input);
                        throw eee;
                }
                cnt34++;
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "propertyList"


    // $ANTLR start "internal"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:277:1: internal : ^( PROP_INTERNAL booleanLiteral ) ;
    public final void internal() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:278:2: ( ^( PROP_INTERNAL booleanLiteral ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:278:4: ^( PROP_INTERNAL booleanLiteral )
            {
            match(input,PROP_INTERNAL,FOLLOW_PROP_INTERNAL_in_internal1002); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_booleanLiteral_in_internal1004);
            booleanLiteral();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "internal"


    // $ANTLR start "statement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:286:1: statement : ( expression | localVariableDeclaration | constantDeclaration[false] | exitStatment | continueStatment | postStatement | raiseStatement | returnStatement | whileDoStatement | forStatement | caseStatement | eventLoopStatement | eventCaseStatement | ifStatement | sqlStatement | block | raiseStatement | startTask );
    public final void statement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:287:5: ( expression | localVariableDeclaration | constantDeclaration[false] | exitStatment | continueStatment | postStatement | raiseStatement | returnStatement | whileDoStatement | forStatement | caseStatement | eventLoopStatement | eventCaseStatement | ifStatement | sqlStatement | block | raiseStatement | startTask )
            int alt35=18;
            alt35 = dfa35.predict(input);
            switch (alt35) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:288:3: expression
                    {
                    pushFollow(FOLLOW_expression_in_statement1030);
                    expression();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:289:5: localVariableDeclaration
                    {
                    pushFollow(FOLLOW_localVariableDeclaration_in_statement1036);
                    localVariableDeclaration();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:290:5: constantDeclaration[false]
                    {
                    pushFollow(FOLLOW_constantDeclaration_in_statement1042);
                    constantDeclaration(false);

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:291:5: exitStatment
                    {
                    pushFollow(FOLLOW_exitStatment_in_statement1049);
                    exitStatment();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:292:5: continueStatment
                    {
                    pushFollow(FOLLOW_continueStatment_in_statement1055);
                    continueStatment();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:293:5: postStatement
                    {
                    pushFollow(FOLLOW_postStatement_in_statement1061);
                    postStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:294:5: raiseStatement
                    {
                    pushFollow(FOLLOW_raiseStatement_in_statement1067);
                    raiseStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 8 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:295:5: returnStatement
                    {
                    pushFollow(FOLLOW_returnStatement_in_statement1073);
                    returnStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 9 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:296:5: whileDoStatement
                    {
                    pushFollow(FOLLOW_whileDoStatement_in_statement1079);
                    whileDoStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 10 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:297:5: forStatement
                    {
                    pushFollow(FOLLOW_forStatement_in_statement1085);
                    forStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 11 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:298:5: caseStatement
                    {
                    pushFollow(FOLLOW_caseStatement_in_statement1091);
                    caseStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 12 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:299:5: eventLoopStatement
                    {
                    pushFollow(FOLLOW_eventLoopStatement_in_statement1097);
                    eventLoopStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 13 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:300:7: eventCaseStatement
                    {
                    pushFollow(FOLLOW_eventCaseStatement_in_statement1105);
                    eventCaseStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 14 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:301:5: ifStatement
                    {
                    pushFollow(FOLLOW_ifStatement_in_statement1111);
                    ifStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 15 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:302:5: sqlStatement
                    {
                    pushFollow(FOLLOW_sqlStatement_in_statement1117);
                    sqlStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 16 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:303:5: block
                    {
                    pushFollow(FOLLOW_block_in_statement1123);
                    block();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 17 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:304:5: raiseStatement
                    {
                    pushFollow(FOLLOW_raiseStatement_in_statement1129);
                    raiseStatement();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 18 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:305:5: startTask
                    {
                    pushFollow(FOLLOW_startTask_in_statement1135);
                    startTask();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "statement"


    // $ANTLR start "sqlStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:308:1: sqlStatement : ( SQL | SQL_DO );
    public final void sqlStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:309:3: ( SQL | SQL_DO )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( input.LA(1)==SQL||input.LA(1)==SQL_DO ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "sqlStatement"


    // $ANTLR start "forStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:313:1: forStatement : ^( FOR ( statement )* ) ;
    public final void forStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:314:5: ( ^( FOR ( statement )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:314:9: ^( FOR ( statement )* )
            {
            match(input,FOR,FOLLOW_FOR_in_forStatement1179); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:316:9: ( statement )*
                loop36:
                do {
                    int alt36=2;
                    int LA36_0 = input.LA(1);

                    if ( (LA36_0==EXPR||(LA36_0>=EVENT_CASE && LA36_0<=EVENT_LOOP)||LA36_0==START_TASK||LA36_0==LOCAL_DECLARATION||LA36_0==BLOCK||LA36_0==RETURN||(LA36_0>=CONSTANT && LA36_0<=FOR)||(LA36_0>=EXIT && LA36_0<=IF)||(LA36_0>=RAISE && LA36_0<=POST)||LA36_0==SQL||LA36_0==SQL_DO) ) {
                        alt36=1;
                    }


                    switch (alt36) {
                  case 1 :
                      // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                      {
                      pushFollow(FOLLOW_statement_in_forStatement1191);
                      statement();

                      state._fsp--;
                      if (state.failed) return ;

                      }
                      break;

                  default :
                      break loop36;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "forStatement"


    // $ANTLR start "forCountControlled"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:319:1: forCountControlled : qualifiedName expression expression ( expression )? ;
    public final void forCountControlled() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:320:3: ( qualifiedName expression expression ( expression )? )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:320:5: qualifiedName expression expression ( expression )?
            {
            pushFollow(FOLLOW_qualifiedName_in_forCountControlled1212);
            qualifiedName();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_forCountControlled1214);
            expression();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_forCountControlled1216);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:320:41: ( expression )?
            int alt37=2;
            int LA37_0 = input.LA(1);

            if ( (LA37_0==EXPR) ) {
                alt37=1;
            }
            switch (alt37) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:320:43: expression
                    {
                    pushFollow(FOLLOW_expression_in_forCountControlled1220);
                    expression();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "forCountControlled"


    // $ANTLR start "forEach"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:323:1: forEach : qualifiedName expression ;
    public final void forEach() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:324:3: ( qualifiedName expression )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:324:5: qualifiedName expression
            {
            pushFollow(FOLLOW_qualifiedName_in_forEach1235);
            qualifiedName();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_forEach1237);
            expression();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "forEach"


    // $ANTLR start "forSQL"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:327:1: forSQL : localVariableDeclaration SQL_DO ;
    public final void forSQL() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:328:3: ( localVariableDeclaration SQL_DO )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:328:5: localVariableDeclaration SQL_DO
            {
            pushFollow(FOLLOW_localVariableDeclaration_in_forSQL1252);
            localVariableDeclaration();

            state._fsp--;
            if (state.failed) return ;
            match(input,SQL_DO,FOLLOW_SQL_DO_in_forSQL1254); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "forSQL"


    // $ANTLR start "exitStatment"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:332:1: exitStatment : ^( EXIT ( label )? ) ;
    public final void exitStatment() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:333:2: ( ^( EXIT ( label )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:333:4: ^( EXIT ( label )? )
            {
            match(input,EXIT,FOLLOW_EXIT_in_exitStatment1268); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:333:11: ( label )?
                int alt38=2;
                int LA38_0 = input.LA(1);

                if ( (LA38_0==LABEL) ) {
                    alt38=1;
                }
                switch (alt38) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: label
                        {
                        pushFollow(FOLLOW_label_in_exitStatment1270);
                        label();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "exitStatment"


    // $ANTLR start "continueStatment"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:335:1: continueStatment : ^( CONTINUE ( label )? ) ;
    public final void continueStatment() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:336:2: ( ^( CONTINUE ( label )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:336:4: ^( CONTINUE ( label )? )
            {
            match(input,CONTINUE,FOLLOW_CONTINUE_in_continueStatment1283); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:336:15: ( label )?
                int alt39=2;
                int LA39_0 = input.LA(1);

                if ( (LA39_0==LABEL) ) {
                    alt39=1;
                }
                switch (alt39) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: label
                        {
                        pushFollow(FOLLOW_label_in_continueStatment1285);
                        label();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "continueStatment"


    // $ANTLR start "returnStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:338:1: returnStatement : ^( RETURN ( expression )? ) ;
    public final void returnStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:339:2: ( ^( RETURN ( expression )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:339:4: ^( RETURN ( expression )? )
            {
            match(input,RETURN,FOLLOW_RETURN_in_returnStatement1298); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:339:13: ( expression )?
                int alt40=2;
                int LA40_0 = input.LA(1);

                if ( (LA40_0==EXPR) ) {
                    alt40=1;
                }
                switch (alt40) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: expression
                        {
                        pushFollow(FOLLOW_expression_in_returnStatement1300);
                        expression();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "returnStatement"


    // $ANTLR start "caseStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:341:1: caseStatement : ^( CASE expression ( whenCase )* ( elseDO )? ) ;
    public final void caseStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:342:2: ( ^( CASE expression ( whenCase )* ( elseDO )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:342:4: ^( CASE expression ( whenCase )* ( elseDO )? )
            {
            match(input,CASE,FOLLOW_CASE_in_caseStatement1313); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_caseStatement1315);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:342:22: ( whenCase )*
            loop41:
            do {
                int alt41=2;
                int LA41_0 = input.LA(1);

                if ( (LA41_0==WHEN_CASE) ) {
                    alt41=1;
                }


                switch (alt41) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: whenCase
                  {
                  pushFollow(FOLLOW_whenCase_in_caseStatement1317);
                  whenCase();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  break loop41;
                }
            } while (true);

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:342:32: ( elseDO )?
            int alt42=2;
            int LA42_0 = input.LA(1);

            if ( (LA42_0==ELSE) ) {
                alt42=1;
            }
            switch (alt42) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: elseDO
                    {
                    pushFollow(FOLLOW_elseDO_in_caseStatement1320);
                    elseDO();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "caseStatement"


    // $ANTLR start "whileDoStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:345:1: whileDoStatement : ^( WHILE expression ( statement )* ) ;
    public final void whileDoStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:346:2: ( ^( WHILE expression ( statement )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:346:4: ^( WHILE expression ( statement )* )
            {
            match(input,WHILE,FOLLOW_WHILE_in_whileDoStatement1334); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_whileDoStatement1337);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:346:25: ( statement )*
            loop43:
            do {
                int alt43=2;
                int LA43_0 = input.LA(1);

                if ( (LA43_0==EXPR||(LA43_0>=EVENT_CASE && LA43_0<=EVENT_LOOP)||LA43_0==START_TASK||LA43_0==LOCAL_DECLARATION||LA43_0==BLOCK||LA43_0==RETURN||(LA43_0>=CONSTANT && LA43_0<=FOR)||(LA43_0>=EXIT && LA43_0<=IF)||(LA43_0>=RAISE && LA43_0<=POST)||LA43_0==SQL||LA43_0==SQL_DO) ) {
                    alt43=1;
                }


                switch (alt43) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                  {
                  pushFollow(FOLLOW_statement_in_whileDoStatement1340);
                  statement();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  break loop43;
                }
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "whileDoStatement"


    // $ANTLR start "ifStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:349:1: ifStatement : ^( IF expression ( statement )+ ^( ELSEIF expression ( statement )+ ) ) ;
    public final void ifStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:350:2: ( ^( IF expression ( statement )+ ^( ELSEIF expression ( statement )+ ) ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:350:4: ^( IF expression ( statement )+ ^( ELSEIF expression ( statement )+ ) )
            {
            match(input,IF,FOLLOW_IF_in_ifStatement1355); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_ifStatement1357);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:350:20: ( statement )+
            int cnt44=0;
            loop44:
            do {
                int alt44=2;
                int LA44_0 = input.LA(1);

                if ( (LA44_0==EXPR||(LA44_0>=EVENT_CASE && LA44_0<=EVENT_LOOP)||LA44_0==START_TASK||LA44_0==LOCAL_DECLARATION||LA44_0==BLOCK||LA44_0==RETURN||(LA44_0>=CONSTANT && LA44_0<=FOR)||(LA44_0>=EXIT && LA44_0<=IF)||(LA44_0>=RAISE && LA44_0<=POST)||LA44_0==SQL||LA44_0==SQL_DO) ) {
                    alt44=1;
                }


                switch (alt44) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                  {
                  pushFollow(FOLLOW_statement_in_ifStatement1359);
                  statement();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt44 >= 1 ) break loop44;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(44, input);
                        throw eee;
                }
                cnt44++;
            } while (true);

            match(input,ELSEIF,FOLLOW_ELSEIF_in_ifStatement1363); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_ifStatement1365);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:350:51: ( statement )+
            int cnt45=0;
            loop45:
            do {
                int alt45=2;
                int LA45_0 = input.LA(1);

                if ( (LA45_0==EXPR||(LA45_0>=EVENT_CASE && LA45_0<=EVENT_LOOP)||LA45_0==START_TASK||LA45_0==LOCAL_DECLARATION||LA45_0==BLOCK||LA45_0==RETURN||(LA45_0>=CONSTANT && LA45_0<=FOR)||(LA45_0>=EXIT && LA45_0<=IF)||(LA45_0>=RAISE && LA45_0<=POST)||LA45_0==SQL||LA45_0==SQL_DO) ) {
                    alt45=1;
                }


                switch (alt45) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                  {
                  pushFollow(FOLLOW_statement_in_ifStatement1367);
                  statement();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt45 >= 1 ) break loop45;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(45, input);
                        throw eee;
                }
                cnt45++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "ifStatement"


    // $ANTLR start "raiseStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:353:1: raiseStatement : ^( RAISE ( expression )? ) ;
    public final void raiseStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:354:2: ( ^( RAISE ( expression )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:354:4: ^( RAISE ( expression )? )
            {
            match(input,RAISE,FOLLOW_RAISE_in_raiseStatement1382); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:354:12: ( expression )?
                int alt46=2;
                int LA46_0 = input.LA(1);

                if ( (LA46_0==EXPR) ) {
                    alt46=1;
                }
                switch (alt46) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: expression
                        {
                        pushFollow(FOLLOW_expression_in_raiseStatement1384);
                        expression();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "raiseStatement"


    // $ANTLR start "postStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:357:1: postStatement : ^( POST expression ) ;
    public final void postStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:358:2: ( ^( POST expression ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:358:4: ^( POST expression )
            {
            match(input,POST,FOLLOW_POST_in_postStatement1398); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_postStatement1400);
            expression();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "postStatement"


    // $ANTLR start "eventLoopStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:360:1: eventLoopStatement : ^( EVENT_LOOP ( preregisterStatement )? ( postregisterStatement )? ( whenEvent )* ( label )? ) ;
    public final void eventLoopStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:361:2: ( ^( EVENT_LOOP ( preregisterStatement )? ( postregisterStatement )? ( whenEvent )* ( label )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:361:4: ^( EVENT_LOOP ( preregisterStatement )? ( postregisterStatement )? ( whenEvent )* ( label )? )
            {
            match(input,EVENT_LOOP,FOLLOW_EVENT_LOOP_in_eventLoopStatement1412); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:361:17: ( preregisterStatement )?
                int alt47=2;
                int LA47_0 = input.LA(1);

                if ( (LA47_0==PREREGISTER) ) {
                    alt47=1;
                }
                switch (alt47) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: preregisterStatement
                        {
                        pushFollow(FOLLOW_preregisterStatement_in_eventLoopStatement1414);
                        preregisterStatement();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:361:39: ( postregisterStatement )?
                int alt48=2;
                int LA48_0 = input.LA(1);

                if ( (LA48_0==POSTREGISTER) ) {
                    alt48=1;
                }
                switch (alt48) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: postregisterStatement
                        {
                        pushFollow(FOLLOW_postregisterStatement_in_eventLoopStatement1417);
                        postregisterStatement();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:361:62: ( whenEvent )*
                loop49:
                do {
                    int alt49=2;
                    int LA49_0 = input.LA(1);

                    if ( (LA49_0==WHEN_EVENT) ) {
                        alt49=1;
                    }


                    switch (alt49) {
                  case 1 :
                      // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: whenEvent
                      {
                      pushFollow(FOLLOW_whenEvent_in_eventLoopStatement1420);
                      whenEvent();

                      state._fsp--;
                      if (state.failed) return ;

                      }
                      break;

                  default :
                      break loop49;
                    }
                } while (true);

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:361:73: ( label )?
                int alt50=2;
                int LA50_0 = input.LA(1);

                if ( (LA50_0==LABEL) ) {
                    alt50=1;
                }
                switch (alt50) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: label
                        {
                        pushFollow(FOLLOW_label_in_eventLoopStatement1423);
                        label();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "eventLoopStatement"


    // $ANTLR start "eventCaseStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:364:1: eventCaseStatement : ^( EVENT_CASE ( preregisterStatement )? ( postregisterStatement )? ( whenEvent )* ( label )? ) ;
    public final void eventCaseStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:365:3: ( ^( EVENT_CASE ( preregisterStatement )? ( postregisterStatement )? ( whenEvent )* ( label )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:365:5: ^( EVENT_CASE ( preregisterStatement )? ( postregisterStatement )? ( whenEvent )* ( label )? )
            {
            match(input,EVENT_CASE,FOLLOW_EVENT_CASE_in_eventCaseStatement1438); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:365:18: ( preregisterStatement )?
                int alt51=2;
                int LA51_0 = input.LA(1);

                if ( (LA51_0==PREREGISTER) ) {
                    alt51=1;
                }
                switch (alt51) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: preregisterStatement
                        {
                        pushFollow(FOLLOW_preregisterStatement_in_eventCaseStatement1440);
                        preregisterStatement();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:365:40: ( postregisterStatement )?
                int alt52=2;
                int LA52_0 = input.LA(1);

                if ( (LA52_0==POSTREGISTER) ) {
                    alt52=1;
                }
                switch (alt52) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: postregisterStatement
                        {
                        pushFollow(FOLLOW_postregisterStatement_in_eventCaseStatement1443);
                        postregisterStatement();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:365:63: ( whenEvent )*
                loop53:
                do {
                    int alt53=2;
                    int LA53_0 = input.LA(1);

                    if ( (LA53_0==WHEN_EVENT) ) {
                        alt53=1;
                    }


                    switch (alt53) {
                  case 1 :
                      // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: whenEvent
                      {
                      pushFollow(FOLLOW_whenEvent_in_eventCaseStatement1446);
                      whenEvent();

                      state._fsp--;
                      if (state.failed) return ;

                      }
                      break;

                  default :
                      break loop53;
                    }
                } while (true);

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:365:74: ( label )?
                int alt54=2;
                int LA54_0 = input.LA(1);

                if ( (LA54_0==LABEL) ) {
                    alt54=1;
                }
                switch (alt54) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: label
                        {
                        pushFollow(FOLLOW_label_in_eventCaseStatement1449);
                        label();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "eventCaseStatement"


    // $ANTLR start "preregisterStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:368:1: preregisterStatement : ^( PREREGISTER ( registerStatement )* ) ;
    public final void preregisterStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:369:2: ( ^( PREREGISTER ( registerStatement )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:369:4: ^( PREREGISTER ( registerStatement )* )
            {
            match(input,PREREGISTER,FOLLOW_PREREGISTER_in_preregisterStatement1464); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:369:18: ( registerStatement )*
                loop55:
                do {
                    int alt55=2;
                    int LA55_0 = input.LA(1);

                    if ( (LA55_0==REGISTER) ) {
                        alt55=1;
                    }


                    switch (alt55) {
                  case 1 :
                      // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: registerStatement
                      {
                      pushFollow(FOLLOW_registerStatement_in_preregisterStatement1466);
                      registerStatement();

                      state._fsp--;
                      if (state.failed) return ;

                      }
                      break;

                  default :
                      break loop55;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "preregisterStatement"


    // $ANTLR start "postregisterStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:372:1: postregisterStatement : ^( POSTREGISTER ( registerStatement )* ) ;
    public final void postregisterStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:373:2: ( ^( POSTREGISTER ( registerStatement )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:373:4: ^( POSTREGISTER ( registerStatement )* )
            {
            match(input,POSTREGISTER,FOLLOW_POSTREGISTER_in_postregisterStatement1480); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:373:19: ( registerStatement )*
                loop56:
                do {
                    int alt56=2;
                    int LA56_0 = input.LA(1);

                    if ( (LA56_0==REGISTER) ) {
                        alt56=1;
                    }


                    switch (alt56) {
                  case 1 :
                      // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: registerStatement
                      {
                      pushFollow(FOLLOW_registerStatement_in_postregisterStatement1482);
                      registerStatement();

                      state._fsp--;
                      if (state.failed) return ;

                      }
                      break;

                  default :
                      break loop56;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "postregisterStatement"


    // $ANTLR start "registerStatement"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:377:1: registerStatement : ^( REGISTER IDENTIFIER ( arguments )? ) ;
    public final void registerStatement() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:378:2: ( ^( REGISTER IDENTIFIER ( arguments )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:378:4: ^( REGISTER IDENTIFIER ( arguments )? )
            {
            match(input,REGISTER,FOLLOW_REGISTER_in_registerStatement1497); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_registerStatement1499); if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:378:26: ( arguments )?
            int alt57=2;
            int LA57_0 = input.LA(1);

            if ( (LA57_0==ARGUMENT_LIST) ) {
                alt57=1;
            }
            switch (alt57) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: arguments
                    {
                    pushFollow(FOLLOW_arguments_in_registerStatement1501);
                    arguments();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "registerStatement"


    // $ANTLR start "startTask"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:382:1: startTask : ^( START_TASK expression ( completion )? ) ;
    public final void startTask() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:383:3: ( ^( START_TASK expression ( completion )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:383:5: ^( START_TASK expression ( completion )? )
            {
            match(input,START_TASK,FOLLOW_START_TASK_in_startTask1517); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_startTask1519);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:383:30: ( completion )?
            int alt58=2;
            int LA58_0 = input.LA(1);

            if ( (LA58_0==COMPLETION) ) {
                alt58=1;
            }
            switch (alt58) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: completion
                    {
                    pushFollow(FOLLOW_completion_in_startTask1522);
                    completion();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "startTask"


    // $ANTLR start "completion"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:386:1: completion : ^( COMPLETION ( EVENT | 'ignore' ) ) ( ^( TRANSACTION transType ) )? ;
    public final void completion() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:387:2: ( ^( COMPLETION ( EVENT | 'ignore' ) ) ( ^( TRANSACTION transType ) )? )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:387:4: ^( COMPLETION ( EVENT | 'ignore' ) ) ( ^( TRANSACTION transType ) )?
            {
            match(input,COMPLETION,FOLLOW_COMPLETION_in_completion1539); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            if ( input.LA(1)==EVENT||input.LA(1)==245 ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            match(input, Token.UP, null); if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:388:5: ( ^( TRANSACTION transType ) )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( (LA59_0==TRANSACTION) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:388:6: ^( TRANSACTION transType )
                    {
                    match(input,TRANSACTION,FOLLOW_TRANSACTION_in_completion1557); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_transType_in_completion1559);
                    transType();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "completion"


    // $ANTLR start "whenException"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:392:1: whenException : ^( WHEN_EXCEPTION IDENTIFIER type ( statement )* ) ;
    public final void whenException() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:393:2: ( ^( WHEN_EXCEPTION IDENTIFIER type ( statement )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:393:4: ^( WHEN_EXCEPTION IDENTIFIER type ( statement )* )
            {
            match(input,WHEN_EXCEPTION,FOLLOW_WHEN_EXCEPTION_in_whenException1578); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_whenException1580); if (state.failed) return ;
            pushFollow(FOLLOW_type_in_whenException1582);
            type();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:393:37: ( statement )*
            loop60:
            do {
                int alt60=2;
                int LA60_0 = input.LA(1);

                if ( (LA60_0==EXPR||(LA60_0>=EVENT_CASE && LA60_0<=EVENT_LOOP)||LA60_0==START_TASK||LA60_0==LOCAL_DECLARATION||LA60_0==BLOCK||LA60_0==RETURN||(LA60_0>=CONSTANT && LA60_0<=FOR)||(LA60_0>=EXIT && LA60_0<=IF)||(LA60_0>=RAISE && LA60_0<=POST)||LA60_0==SQL||LA60_0==SQL_DO) ) {
                    alt60=1;
                }


                switch (alt60) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                  {
                  pushFollow(FOLLOW_statement_in_whenException1584);
                  statement();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  break loop60;
                }
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "whenException"


    // $ANTLR start "whenCase"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:396:1: whenCase : ^( WHEN_CASE expression ( statement )* ) ;
    public final void whenCase() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:397:2: ( ^( WHEN_CASE expression ( statement )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:397:4: ^( WHEN_CASE expression ( statement )* )
            {
            match(input,WHEN_CASE,FOLLOW_WHEN_CASE_in_whenCase1598); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_whenCase1600);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:397:27: ( statement )*
            loop61:
            do {
                int alt61=2;
                int LA61_0 = input.LA(1);

                if ( (LA61_0==EXPR||(LA61_0>=EVENT_CASE && LA61_0<=EVENT_LOOP)||LA61_0==START_TASK||LA61_0==LOCAL_DECLARATION||LA61_0==BLOCK||LA61_0==RETURN||(LA61_0>=CONSTANT && LA61_0<=FOR)||(LA61_0>=EXIT && LA61_0<=IF)||(LA61_0>=RAISE && LA61_0<=POST)||LA61_0==SQL||LA61_0==SQL_DO) ) {
                    alt61=1;
                }


                switch (alt61) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                  {
                  pushFollow(FOLLOW_statement_in_whenCase1602);
                  statement();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  break loop61;
                }
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "whenCase"


    // $ANTLR start "whenEvent"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:400:1: whenEvent : ^( WHEN_EVENT expression ( eventArguments )? ( statement )* ) ;
    public final void whenEvent() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:401:3: ( ^( WHEN_EVENT expression ( eventArguments )? ( statement )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:401:5: ^( WHEN_EVENT expression ( eventArguments )? ( statement )* )
            {
            match(input,WHEN_EVENT,FOLLOW_WHEN_EVENT_in_whenEvent1618); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_whenEvent1620);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:401:29: ( eventArguments )?
            int alt62=2;
            int LA62_0 = input.LA(1);

            if ( (LA62_0==ARGUMENT_LIST_EVENT) ) {
                alt62=1;
            }
            switch (alt62) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: eventArguments
                    {
                    pushFollow(FOLLOW_eventArguments_in_whenEvent1622);
                    eventArguments();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:401:45: ( statement )*
            loop63:
            do {
                int alt63=2;
                int LA63_0 = input.LA(1);

                if ( (LA63_0==EXPR||(LA63_0>=EVENT_CASE && LA63_0<=EVENT_LOOP)||LA63_0==START_TASK||LA63_0==LOCAL_DECLARATION||LA63_0==BLOCK||LA63_0==RETURN||(LA63_0>=CONSTANT && LA63_0<=FOR)||(LA63_0>=EXIT && LA63_0<=IF)||(LA63_0>=RAISE && LA63_0<=POST)||LA63_0==SQL||LA63_0==SQL_DO) ) {
                    alt63=1;
                }


                switch (alt63) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                  {
                  pushFollow(FOLLOW_statement_in_whenEvent1625);
                  statement();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  break loop63;
                }
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "whenEvent"


    // $ANTLR start "exceptionBlock"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:404:1: exceptionBlock : ^( EXCEPTION ( whenException )* ( elseDO )? ) ;
    public final void exceptionBlock() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:405:2: ( ^( EXCEPTION ( whenException )* ( elseDO )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:405:4: ^( EXCEPTION ( whenException )* ( elseDO )? )
            {
            match(input,EXCEPTION,FOLLOW_EXCEPTION_in_exceptionBlock1641); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:405:16: ( whenException )*
                loop64:
                do {
                    int alt64=2;
                    int LA64_0 = input.LA(1);

                    if ( (LA64_0==WHEN_EXCEPTION) ) {
                        alt64=1;
                    }


                    switch (alt64) {
                  case 1 :
                      // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: whenException
                      {
                      pushFollow(FOLLOW_whenException_in_exceptionBlock1643);
                      whenException();

                      state._fsp--;
                      if (state.failed) return ;

                      }
                      break;

                  default :
                      break loop64;
                    }
                } while (true);

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:405:31: ( elseDO )?
                int alt65=2;
                int LA65_0 = input.LA(1);

                if ( (LA65_0==ELSE) ) {
                    alt65=1;
                }
                switch (alt65) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: elseDO
                        {
                        pushFollow(FOLLOW_elseDO_in_exceptionBlock1646);
                        elseDO();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "exceptionBlock"


    // $ANTLR start "elseDO"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:409:1: elseDO : ^( ELSE ( statement )* ) ;
    public final void elseDO() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:410:3: ( ^( ELSE ( statement )* ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:410:5: ^( ELSE ( statement )* )
            {
            match(input,ELSE,FOLLOW_ELSE_in_elseDO1667); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:410:12: ( statement )*
                loop66:
                do {
                    int alt66=2;
                    int LA66_0 = input.LA(1);

                    if ( (LA66_0==EXPR||(LA66_0>=EVENT_CASE && LA66_0<=EVENT_LOOP)||LA66_0==START_TASK||LA66_0==LOCAL_DECLARATION||LA66_0==BLOCK||LA66_0==RETURN||(LA66_0>=CONSTANT && LA66_0<=FOR)||(LA66_0>=EXIT && LA66_0<=IF)||(LA66_0>=RAISE && LA66_0<=POST)||LA66_0==SQL||LA66_0==SQL_DO) ) {
                        alt66=1;
                    }


                    switch (alt66) {
                  case 1 :
                      // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                      {
                      pushFollow(FOLLOW_statement_in_elseDO1669);
                      statement();

                      state._fsp--;
                      if (state.failed) return ;

                      }
                      break;

                  default :
                      break loop66;
                    }
                } while (true);


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "elseDO"


    // $ANTLR start "methodReturnDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:413:1: methodReturnDeclaration : ^( RETURN type ( COPY )? ) ;
    public final void methodReturnDeclaration() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:414:2: ( ^( RETURN type ( COPY )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:414:5: ^( RETURN type ( COPY )? )
            {
            match(input,RETURN,FOLLOW_RETURN_in_methodReturnDeclaration1685); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_type_in_methodReturnDeclaration1687);
            type();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:414:19: ( COPY )?
            int alt67=2;
            int LA67_0 = input.LA(1);

            if ( (LA67_0==COPY) ) {
                alt67=1;
            }
            switch (alt67) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: COPY
                    {
                    match(input,COPY,FOLLOW_COPY_in_methodReturnDeclaration1689); if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "methodReturnDeclaration"


    // $ANTLR start "formalParameters"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:417:1: formalParameters : ( formalParameterDecls )? ;
    public final void formalParameters() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:418:5: ( ( formalParameterDecls )? )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:418:9: ( formalParameterDecls )?
            {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:418:9: ( formalParameterDecls )?
            int alt68=2;
            int LA68_0 = input.LA(1);

            if ( (LA68_0==PARAMETER) ) {
                alt68=1;
            }
            switch (alt68) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: formalParameterDecls
                    {
                    pushFollow(FOLLOW_formalParameterDecls_in_formalParameters1709);
                    formalParameterDecls();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "formalParameters"


    // $ANTLR start "formalParameterDecls"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:421:1: formalParameterDecls : ( normalParameterDecl )+ ;
    public final void formalParameterDecls() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:422:5: ( ( normalParameterDecl )+ )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:422:9: ( normalParameterDecl )+
            {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:422:9: ( normalParameterDecl )+
            int cnt69=0;
            loop69:
            do {
                int alt69=2;
                int LA69_0 = input.LA(1);

                if ( (LA69_0==PARAMETER) ) {
                    alt69=1;
                }


                switch (alt69) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: normalParameterDecl
                  {
                  pushFollow(FOLLOW_normalParameterDecl_in_formalParameterDecls1730);
                  normalParameterDecl();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt69 >= 1 ) break loop69;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(69, input);
                        throw eee;
                }
                cnt69++;
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "formalParameterDecls"


    // $ANTLR start "normalParameterDecl"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:425:1: normalParameterDecl : ^( PARAMETER paramName type paramModifiers ( expression )? ) ;
    public final void normalParameterDecl() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:426:5: ( ^( PARAMETER paramName type paramModifiers ( expression )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:426:10: ^( PARAMETER paramName type paramModifiers ( expression )? )
            {
            match(input,PARAMETER,FOLLOW_PARAMETER_in_normalParameterDecl1753); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_paramName_in_normalParameterDecl1755);
            paramName();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_type_in_normalParameterDecl1757);
            type();

            state._fsp--;
            if (state.failed) return ;
            pushFollow(FOLLOW_paramModifiers_in_normalParameterDecl1759);
            paramModifiers();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:426:52: ( expression )?
            int alt70=2;
            int LA70_0 = input.LA(1);

            if ( (LA70_0==EXPR) ) {
                alt70=1;
            }
            switch (alt70) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: expression
                    {
                    pushFollow(FOLLOW_expression_in_normalParameterDecl1761);
                    expression();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "normalParameterDecl"


    // $ANTLR start "paramName"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:429:1: paramName : ( name | primitiveType );
    public final void paramName() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:430:3: ( name | primitiveType )
            int alt71=2;
            int LA71_0 = input.LA(1);

            if ( (LA71_0==IDENTIFIER||LA71_0==230) ) {
                alt71=1;
            }
            else if ( ((LA71_0>=ARRAY && LA71_0<=GENERICARRAY)||(LA71_0>=248 && LA71_0<=263)) ) {
                alt71=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 71, 0, input);

                throw nvae;
            }
            switch (alt71) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:430:5: name
                    {
                    pushFollow(FOLLOW_name_in_paramName1778);
                    name();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:431:5: primitiveType
                    {
                    pushFollow(FOLLOW_primitiveType_in_paramName1784);
                    primitiveType();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "paramName"


    // $ANTLR start "paramModifiers"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:435:1: paramModifiers : ( COPY )? ( INPUT OUTPUT | INPUT | OUTPUT ) ;
    public final void paramModifiers() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:436:5: ( ( COPY )? ( INPUT OUTPUT | INPUT | OUTPUT ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:436:7: ( COPY )? ( INPUT OUTPUT | INPUT | OUTPUT )
            {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:436:7: ( COPY )?
            int alt72=2;
            int LA72_0 = input.LA(1);

            if ( (LA72_0==COPY) ) {
                alt72=1;
            }
            switch (alt72) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: COPY
                    {
                    match(input,COPY,FOLLOW_COPY_in_paramModifiers1801); if (state.failed) return ;

                    }
                    break;

            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:437:5: ( INPUT OUTPUT | INPUT | OUTPUT )
            int alt73=3;
            int LA73_0 = input.LA(1);

            if ( (LA73_0==INPUT) ) {
                int LA73_1 = input.LA(2);

                if ( (LA73_1==OUTPUT) ) {
                    alt73=1;
                }
                else if ( (LA73_1==UP||LA73_1==EXPR) ) {
                    alt73=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 73, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA73_0==OUTPUT) ) {
                alt73=3;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 73, 0, input);

                throw nvae;
            }
            switch (alt73) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:437:6: INPUT OUTPUT
                    {
                    match(input,INPUT,FOLLOW_INPUT_in_paramModifiers1811); if (state.failed) return ;
                    match(input,OUTPUT,FOLLOW_OUTPUT_in_paramModifiers1813); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:438:9: INPUT
                    {
                    match(input,INPUT,FOLLOW_INPUT_in_paramModifiers1823); if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:439:9: OUTPUT
                    {
                    match(input,OUTPUT,FOLLOW_OUTPUT_in_paramModifiers1834); if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "paramModifiers"


    // $ANTLR start "localVariableDeclaration"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:443:1: localVariableDeclaration : ^( LOCAL_DECLARATION ( IDENTIFIER )+ type ( expression )? ) ;
    public final void localVariableDeclaration() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:444:5: ( ^( LOCAL_DECLARATION ( IDENTIFIER )+ type ( expression )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:444:8: ^( LOCAL_DECLARATION ( IDENTIFIER )+ type ( expression )? )
            {
            match(input,LOCAL_DECLARATION,FOLLOW_LOCAL_DECLARATION_in_localVariableDeclaration1856); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:444:28: ( IDENTIFIER )+
            int cnt74=0;
            loop74:
            do {
                int alt74=2;
                int LA74_0 = input.LA(1);

                if ( (LA74_0==IDENTIFIER) ) {
                    alt74=1;
                }


                switch (alt74) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: IDENTIFIER
                  {
                  match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_localVariableDeclaration1858); if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt74 >= 1 ) break loop74;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(74, input);
                        throw eee;
                }
                cnt74++;
            } while (true);

            pushFollow(FOLLOW_type_in_localVariableDeclaration1861);
            type();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:444:45: ( expression )?
            int alt75=2;
            int LA75_0 = input.LA(1);

            if ( (LA75_0==EXPR) ) {
                alt75=1;
            }
            switch (alt75) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: expression
                    {
                    pushFollow(FOLLOW_expression_in_localVariableDeclaration1863);
                    expression();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "localVariableDeclaration"


    // $ANTLR start "label"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:448:1: label : ^( LABEL IDENTIFIER ) ;
    public final void label() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:449:3: ( ^( LABEL IDENTIFIER ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:449:5: ^( LABEL IDENTIFIER )
            {
            match(input,LABEL,FOLLOW_LABEL_in_label1882); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_label1884); if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "label"


    // $ANTLR start "block"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:457:1: block : ^( BLOCK ( TRANSACTION ( transType )? )? ( statement )* ( exceptionBlock )? ) ;
    public final void block() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:458:2: ( ^( BLOCK ( TRANSACTION ( transType )? )? ( statement )* ( exceptionBlock )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:458:4: ^( BLOCK ( TRANSACTION ( transType )? )? ( statement )* ( exceptionBlock )? )
            {
            match(input,BLOCK,FOLLOW_BLOCK_in_block1904); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:458:12: ( TRANSACTION ( transType )? )?
                int alt77=2;
                int LA77_0 = input.LA(1);

                if ( (LA77_0==TRANSACTION) ) {
                    alt77=1;
                }
                switch (alt77) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:458:13: TRANSACTION ( transType )?
                        {
                        match(input,TRANSACTION,FOLLOW_TRANSACTION_in_block1907); if (state.failed) return ;
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:458:25: ( transType )?
                        int alt76=2;
                        int LA76_0 = input.LA(1);

                        if ( ((LA76_0>=DEPENDENT && LA76_0<=INDEPENDENT)) ) {
                            alt76=1;
                        }
                        switch (alt76) {
                            case 1 :
                                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: transType
                                {
                                pushFollow(FOLLOW_transType_in_block1909);
                                transType();

                                state._fsp--;
                                if (state.failed) return ;

                                }
                                break;

                        }


                        }
                        break;

                }

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:459:3: ( statement )*
                loop78:
                do {
                    int alt78=2;
                    int LA78_0 = input.LA(1);

                    if ( (LA78_0==EXPR||(LA78_0>=EVENT_CASE && LA78_0<=EVENT_LOOP)||LA78_0==START_TASK||LA78_0==LOCAL_DECLARATION||LA78_0==BLOCK||LA78_0==RETURN||(LA78_0>=CONSTANT && LA78_0<=FOR)||(LA78_0>=EXIT && LA78_0<=IF)||(LA78_0>=RAISE && LA78_0<=POST)||LA78_0==SQL||LA78_0==SQL_DO) ) {
                        alt78=1;
                    }


                    switch (alt78) {
                  case 1 :
                      // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: statement
                      {
                      pushFollow(FOLLOW_statement_in_block1916);
                      statement();

                      state._fsp--;
                      if (state.failed) return ;

                      }
                      break;

                  default :
                      break loop78;
                    }
                } while (true);

                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:460:3: ( exceptionBlock )?
                int alt79=2;
                int LA79_0 = input.LA(1);

                if ( (LA79_0==EXCEPTION) ) {
                    alt79=1;
                }
                switch (alt79) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: exceptionBlock
                        {
                        pushFollow(FOLLOW_exceptionBlock_in_block1921);
                        exceptionBlock();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "block"


    // $ANTLR start "parenthesizedExpression"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:465:1: parenthesizedExpression : ^( PARENTESIZED_EXPR expression ) ;
    public final void parenthesizedExpression() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:466:5: ( ^( PARENTESIZED_EXPR expression ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:466:9: ^( PARENTESIZED_EXPR expression )
            {
            match(input,PARENTESIZED_EXPR,FOLLOW_PARENTESIZED_EXPR_in_parenthesizedExpression1943); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_parenthesizedExpression1945);
            expression();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "parenthesizedExpression"


    // $ANTLR start "expression"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:469:1: expression : ^( EXPR expr ) ;
    public final void expression() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:470:5: ( ^( EXPR expr ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:470:9: ^( EXPR expr )
            {
            match(input,EXPR,FOLLOW_EXPR_in_expression1970); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expr_in_expression1972);
            expr();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "expression"


    // $ANTLR start "expr"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:473:1: expr : ( ^( EQ expr expr ) | ^( BIT_OR expr expr ) | ^( BIT_XOR expr expr ) | ^( BIT_AND expr expr expr ) | ^( OR expr expr ) | ^( XOR expr expr ) | ^( AND expr expr ) | ^( NOT_EQUAL expr expr ) | ^( LTEQ expr expr ) | ^( GTEQ expr expr ) | ^( GT expr expr ) | ^( LT expr expr ) | ^( PLUS expr expr ) | ^( MINUS expr expr ) | ^( MULT expr expr ) | ^( DIV expr expr ) | ^( MOD expr expr ) | ^( UNARY_PLUS expr ) | ^( UNARY_MINUS expr ) | ^( NOT expr ) | ^( CAST_EXPR type expr ) | primaryExpression );
    public final void expr() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:474:5: ( ^( EQ expr expr ) | ^( BIT_OR expr expr ) | ^( BIT_XOR expr expr ) | ^( BIT_AND expr expr expr ) | ^( OR expr expr ) | ^( XOR expr expr ) | ^( AND expr expr ) | ^( NOT_EQUAL expr expr ) | ^( LTEQ expr expr ) | ^( GTEQ expr expr ) | ^( GT expr expr ) | ^( LT expr expr ) | ^( PLUS expr expr ) | ^( MINUS expr expr ) | ^( MULT expr expr ) | ^( DIV expr expr ) | ^( MOD expr expr ) | ^( UNARY_PLUS expr ) | ^( UNARY_MINUS expr ) | ^( NOT expr ) | ^( CAST_EXPR type expr ) | primaryExpression )
            int alt80=22;
            switch ( input.LA(1) ) {
            case EQ:
                {
                alt80=1;
                }
                break;
            case BIT_OR:
                {
                alt80=2;
                }
                break;
            case BIT_XOR:
                {
                alt80=3;
                }
                break;
            case BIT_AND:
                {
                alt80=4;
                }
                break;
            case OR:
                {
                alt80=5;
                }
                break;
            case XOR:
                {
                alt80=6;
                }
                break;
            case AND:
                {
                alt80=7;
                }
                break;
            case NOT_EQUAL:
                {
                alt80=8;
                }
                break;
            case LTEQ:
                {
                alt80=9;
                }
                break;
            case GTEQ:
                {
                alt80=10;
                }
                break;
            case GT:
                {
                alt80=11;
                }
                break;
            case LT:
                {
                alt80=12;
                }
                break;
            case PLUS:
                {
                alt80=13;
                }
                break;
            case MINUS:
                {
                alt80=14;
                }
                break;
            case MULT:
                {
                alt80=15;
                }
                break;
            case DIV:
                {
                alt80=16;
                }
                break;
            case MOD:
                {
                alt80=17;
                }
                break;
            case UNARY_PLUS:
                {
                alt80=18;
                }
                break;
            case UNARY_MINUS:
                {
                alt80=19;
                }
                break;
            case NOT:
                {
                alt80=20;
                }
                break;
            case CAST_EXPR:
                {
                alt80=21;
                }
                break;
            case METHOD_CALL:
            case CLASS_CONSTRUCTOR_CALL:
            case ARRAY_INDEX:
            case PARENTESIZED_EXPR:
            case IDENTIFIER:
            case INTLITERAL:
            case STRINGLITERAL:
            case DOT:
            case NIL:
            case TRANSACTION:
            case TASK:
            case SELF:
            case SUPER:
            case FALSE:
            case TRUE:
            case HEXLITERAL:
            case FLOATLITERAL:
                {
                alt80=22;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 80, 0, input);

                throw nvae;
            }

            switch (alt80) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:474:9: ^( EQ expr expr )
                    {
                    match(input,EQ,FOLLOW_EQ_in_expr1997); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr1999);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2001);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:475:9: ^( BIT_OR expr expr )
                    {
                    match(input,BIT_OR,FOLLOW_BIT_OR_in_expr2013); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2015);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2017);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:476:9: ^( BIT_XOR expr expr )
                    {
                    match(input,BIT_XOR,FOLLOW_BIT_XOR_in_expr2029); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2031);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2033);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:477:9: ^( BIT_AND expr expr expr )
                    {
                    match(input,BIT_AND,FOLLOW_BIT_AND_in_expr2045); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2047);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2049);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2051);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:478:9: ^( OR expr expr )
                    {
                    match(input,OR,FOLLOW_OR_in_expr2063); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2065);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2067);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:479:9: ^( XOR expr expr )
                    {
                    match(input,XOR,FOLLOW_XOR_in_expr2079); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2081);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2083);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:480:9: ^( AND expr expr )
                    {
                    match(input,AND,FOLLOW_AND_in_expr2095); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2097);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2099);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 8 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:481:9: ^( NOT_EQUAL expr expr )
                    {
                    match(input,NOT_EQUAL,FOLLOW_NOT_EQUAL_in_expr2111); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2113);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2115);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 9 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:482:9: ^( LTEQ expr expr )
                    {
                    match(input,LTEQ,FOLLOW_LTEQ_in_expr2127); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2129);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2131);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 10 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:483:9: ^( GTEQ expr expr )
                    {
                    match(input,GTEQ,FOLLOW_GTEQ_in_expr2143); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2145);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2147);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 11 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:484:9: ^( GT expr expr )
                    {
                    match(input,GT,FOLLOW_GT_in_expr2159); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2161);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2163);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 12 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:485:9: ^( LT expr expr )
                    {
                    match(input,LT,FOLLOW_LT_in_expr2175); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2177);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2179);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 13 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:486:9: ^( PLUS expr expr )
                    {
                    match(input,PLUS,FOLLOW_PLUS_in_expr2191); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2193);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2195);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 14 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:487:9: ^( MINUS expr expr )
                    {
                    match(input,MINUS,FOLLOW_MINUS_in_expr2207); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2209);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2211);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 15 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:488:9: ^( MULT expr expr )
                    {
                    match(input,MULT,FOLLOW_MULT_in_expr2223); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2225);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2227);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 16 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:489:9: ^( DIV expr expr )
                    {
                    match(input,DIV,FOLLOW_DIV_in_expr2239); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2241);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2243);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 17 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:490:9: ^( MOD expr expr )
                    {
                    match(input,MOD,FOLLOW_MOD_in_expr2255); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2257);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2259);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 18 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:491:9: ^( UNARY_PLUS expr )
                    {
                    match(input,UNARY_PLUS,FOLLOW_UNARY_PLUS_in_expr2271); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2273);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 19 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:492:9: ^( UNARY_MINUS expr )
                    {
                    match(input,UNARY_MINUS,FOLLOW_UNARY_MINUS_in_expr2285); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2287);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 20 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:493:9: ^( NOT expr )
                    {
                    match(input,NOT,FOLLOW_NOT_in_expr2299); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2301);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 21 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:494:9: ^( CAST_EXPR type expr )
                    {
                    match(input,CAST_EXPR,FOLLOW_CAST_EXPR_in_expr2313); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_type_in_expr2315);
                    type();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expr_in_expr2317);
                    expr();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 22 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:495:9: primaryExpression
                    {
                    pushFollow(FOLLOW_primaryExpression_in_expr2328);
                    primaryExpression();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "expr"


    // $ANTLR start "primaryExpression"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:500:1: primaryExpression : ( ^( DOT ( primaryExpression ( IDENTIDENTIFIER ) ) ) | parenthesizedExpression | IDENTIFIER | ^( METHOD_CALL primaryExpression arguments ) | ^( ARRAY_INDEX primaryExpression expression ) | literal | newExpression | reservedPrefix );
    public final void primaryExpression() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:501:3: ( ^( DOT ( primaryExpression ( IDENTIDENTIFIER ) ) ) | parenthesizedExpression | IDENTIFIER | ^( METHOD_CALL primaryExpression arguments ) | ^( ARRAY_INDEX primaryExpression expression ) | literal | newExpression | reservedPrefix )
            int alt81=8;
            switch ( input.LA(1) ) {
            case DOT:
                {
                alt81=1;
                }
                break;
            case PARENTESIZED_EXPR:
                {
                alt81=2;
                }
                break;
            case IDENTIFIER:
                {
                alt81=3;
                }
                break;
            case METHOD_CALL:
                {
                alt81=4;
                }
                break;
            case ARRAY_INDEX:
                {
                alt81=5;
                }
                break;
            case INTLITERAL:
            case STRINGLITERAL:
            case NIL:
            case FALSE:
            case TRUE:
            case HEXLITERAL:
            case FLOATLITERAL:
                {
                alt81=6;
                }
                break;
            case CLASS_CONSTRUCTOR_CALL:
                {
                alt81=7;
                }
                break;
            case TRANSACTION:
            case TASK:
            case SELF:
            case SUPER:
                {
                alt81=8;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 81, 0, input);

                throw nvae;
            }

            switch (alt81) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:501:5: ^( DOT ( primaryExpression ( IDENTIDENTIFIER ) ) )
                    {
                    match(input,DOT,FOLLOW_DOT_in_primaryExpression2350); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:502:13: ( primaryExpression ( IDENTIDENTIFIER ) )
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:502:17: primaryExpression ( IDENTIDENTIFIER )
                    {
                    pushFollow(FOLLOW_primaryExpression_in_primaryExpression2368);
                    primaryExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:503:17: ( IDENTIDENTIFIER )
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:503:21: IDENTIDENTIFIER
                    {
                    match(input,IDENTIDENTIFIER,FOLLOW_IDENTIDENTIFIER_in_primaryExpression2390); if (state.failed) return ;

                    }


                    }


                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:507:6: parenthesizedExpression
                    {
                    pushFollow(FOLLOW_parenthesizedExpression_in_primaryExpression2439);
                    parenthesizedExpression();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:508:6: IDENTIFIER
                    {
                    match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_primaryExpression2446); if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:509:7: ^( METHOD_CALL primaryExpression arguments )
                    {
                    match(input,METHOD_CALL,FOLLOW_METHOD_CALL_in_primaryExpression2455); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_primaryExpression_in_primaryExpression2457);
                    primaryExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_arguments_in_primaryExpression2459);
                    arguments();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:510:6: ^( ARRAY_INDEX primaryExpression expression )
                    {
                    match(input,ARRAY_INDEX,FOLLOW_ARRAY_INDEX_in_primaryExpression2468); if (state.failed) return ;

                    match(input, Token.DOWN, null); if (state.failed) return ;
                    pushFollow(FOLLOW_primaryExpression_in_primaryExpression2471);
                    primaryExpression();

                    state._fsp--;
                    if (state.failed) return ;
                    pushFollow(FOLLOW_expression_in_primaryExpression2473);
                    expression();

                    state._fsp--;
                    if (state.failed) return ;

                    match(input, Token.UP, null); if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:511:6: literal
                    {
                    pushFollow(FOLLOW_literal_in_primaryExpression2481);
                    literal();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:512:7: newExpression
                    {
                    pushFollow(FOLLOW_newExpression_in_primaryExpression2489);
                    newExpression();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 8 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:513:7: reservedPrefix
                    {
                    pushFollow(FOLLOW_reservedPrefix_in_primaryExpression2497);
                    reservedPrefix();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "primaryExpression"


    // $ANTLR start "newExpression"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:517:1: newExpression : ^( CLASS_CONSTRUCTOR_CALL ( arguments )? ) ;
    public final void newExpression() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:518:5: ( ^( CLASS_CONSTRUCTOR_CALL ( arguments )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:518:9: ^( CLASS_CONSTRUCTOR_CALL ( arguments )? )
            {
            match(input,CLASS_CONSTRUCTOR_CALL,FOLLOW_CLASS_CONSTRUCTOR_CALL_in_newExpression2519); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:518:34: ( arguments )?
                int alt82=2;
                int LA82_0 = input.LA(1);

                if ( (LA82_0==ARGUMENT_LIST) ) {
                    alt82=1;
                }
                switch (alt82) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: arguments
                        {
                        pushFollow(FOLLOW_arguments_in_newExpression2521);
                        arguments();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "newExpression"


    // $ANTLR start "arguments"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:521:1: arguments : ^( ARGUMENT_LIST ( argumentList )? ) ;
    public final void arguments() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:522:2: ( ^( ARGUMENT_LIST ( argumentList )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:522:4: ^( ARGUMENT_LIST ( argumentList )? )
            {
            match(input,ARGUMENT_LIST,FOLLOW_ARGUMENT_LIST_in_arguments2538); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:522:20: ( argumentList )?
                int alt83=2;
                int LA83_0 = input.LA(1);

                if ( (LA83_0==ARGUMENT) ) {
                    alt83=1;
                }
                switch (alt83) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: argumentList
                        {
                        pushFollow(FOLLOW_argumentList_in_arguments2540);
                        argumentList();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "arguments"


    // $ANTLR start "eventArguments"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:525:1: eventArguments : ^( ARGUMENT_LIST_EVENT ( argumentEventList )? ) ;
    public final void eventArguments() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:526:3: ( ^( ARGUMENT_LIST_EVENT ( argumentEventList )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:526:5: ^( ARGUMENT_LIST_EVENT ( argumentEventList )? )
            {
            match(input,ARGUMENT_LIST_EVENT,FOLLOW_ARGUMENT_LIST_EVENT_in_eventArguments2555); if (state.failed) return ;

            if ( input.LA(1)==Token.DOWN ) {
                match(input, Token.DOWN, null); if (state.failed) return ;
                // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:526:27: ( argumentEventList )?
                int alt84=2;
                int LA84_0 = input.LA(1);

                if ( (LA84_0==ARGUMENT) ) {
                    alt84=1;
                }
                switch (alt84) {
                    case 1 :
                        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: argumentEventList
                        {
                        pushFollow(FOLLOW_argumentEventList_in_eventArguments2557);
                        argumentEventList();

                        state._fsp--;
                        if (state.failed) return ;

                        }
                        break;

                }


                match(input, Token.UP, null); if (state.failed) return ;
            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "eventArguments"


    // $ANTLR start "argumentList"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:529:1: argumentList : ( argument )+ ;
    public final void argumentList() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:530:2: ( ( argument )+ )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:530:4: ( argument )+
            {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:530:4: ( argument )+
            int cnt85=0;
            loop85:
            do {
                int alt85=2;
                int LA85_0 = input.LA(1);

                if ( (LA85_0==ARGUMENT) ) {
                    alt85=1;
                }


                switch (alt85) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: argument
                  {
                  pushFollow(FOLLOW_argument_in_argumentList2572);
                  argument();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt85 >= 1 ) break loop85;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(85, input);
                        throw eee;
                }
                cnt85++;
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "argumentList"


    // $ANTLR start "argumentEventList"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:533:1: argumentEventList : ( argumentEvent )+ ;
    public final void argumentEventList() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:534:3: ( ( argumentEvent )+ )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:534:5: ( argumentEvent )+
            {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:534:5: ( argumentEvent )+
            int cnt86=0;
            loop86:
            do {
                int alt86=2;
                int LA86_0 = input.LA(1);

                if ( (LA86_0==ARGUMENT) ) {
                    alt86=1;
                }


                switch (alt86) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: argumentEvent
                  {
                  pushFollow(FOLLOW_argumentEvent_in_argumentEventList2585);
                  argumentEvent();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt86 >= 1 ) break loop86;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(86, input);
                        throw eee;
                }
                cnt86++;
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "argumentEventList"


    // $ANTLR start "argument"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:537:1: argument : ^( ARGUMENT expression ( name )? ) ;
    public final void argument() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:538:2: ( ^( ARGUMENT expression ( name )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:538:4: ^( ARGUMENT expression ( name )? )
            {
            match(input,ARGUMENT,FOLLOW_ARGUMENT_in_argument2600); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_expression_in_argument2602);
            expression();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:538:26: ( name )?
            int alt87=2;
            int LA87_0 = input.LA(1);

            if ( (LA87_0==IDENTIFIER||LA87_0==230) ) {
                alt87=1;
            }
            switch (alt87) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: name
                    {
                    pushFollow(FOLLOW_name_in_argument2604);
                    name();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "argument"


    // $ANTLR start "argumentEvent"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:541:1: argumentEvent : ^( ARGUMENT evParamName ( name )? ) ;
    public final void argumentEvent() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:542:3: ( ^( ARGUMENT evParamName ( name )? ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:542:5: ^( ARGUMENT evParamName ( name )? )
            {
            match(input,ARGUMENT,FOLLOW_ARGUMENT_in_argumentEvent2619); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_evParamName_in_argumentEvent2621);
            evParamName();

            state._fsp--;
            if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:542:28: ( name )?
            int alt88=2;
            int LA88_0 = input.LA(1);

            if ( (LA88_0==IDENTIFIER||LA88_0==230) ) {
                alt88=1;
            }
            switch (alt88) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: name
                    {
                    pushFollow(FOLLOW_name_in_argumentEvent2623);
                    name();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "argumentEvent"


    // $ANTLR start "evParamName"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:545:1: evParamName : ( IDENTIFIER | RETURN | EXCEPTION );
    public final void evParamName() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:546:2: ( IDENTIFIER | RETURN | EXCEPTION )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( input.LA(1)==IDENTIFIER||(input.LA(1)>=RETURN && input.LA(1)<=EXCEPTION) ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "evParamName"

    public static class modifier_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "modifier"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:551:1: modifier : ( 'public' | 'private' | 'internalpublic' | 'internalprivate' );
    public final ForteCDFTree.modifier_return modifier() throws RecognitionException {
        ForteCDFTree.modifier_return retval = new ForteCDFTree.modifier_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:552:5: ( 'public' | 'private' | 'internalpublic' | 'internalprivate' )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( (input.LA(1)>=PRIVATE && input.LA(1)<=PUBLIC)||(input.LA(1)>=246 && input.LA(1)<=247) ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "modifier"

    public static class type_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "type"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:560:1: type : ( simpleType | objectType | arrayType | pointerType | cType );
    public final ForteCDFTree.type_return type() throws RecognitionException {
        ForteCDFTree.type_return retval = new ForteCDFTree.type_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:561:5: ( simpleType | objectType | arrayType | pointerType | cType )
            int alt89=5;
            switch ( input.LA(1) ) {
            case TYPE:
                {
                int LA89_1 = input.LA(2);

                if ( (LA89_1==DOWN) ) {
                    int LA89_5 = input.LA(3);

                    if ( (LA89_5==QUALIFIED_TYPE_IDENT) ) {
                        alt89=2;
                    }
                    else if ( ((LA89_5>=ARRAY && LA89_5<=GENERICARRAY)||(LA89_5>=248 && LA89_5<=263)) ) {
                        alt89=1;
                    }
                    else {
                        if (state.backtracking>0) {state.failed=true; return retval;}
                        NoViableAltException nvae =
                            new NoViableAltException("", 89, 5, input);

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

                    throw nvae;
                }
                }
                break;
            case ARRAY_TYPE:
                {
                alt89=3;
                }
                break;
            case POINTER_TYPE:
                {
                alt89=4;
                }
                break;
            case STRUCT:
            case ENUM:
            case 249:
            case 251:
            case 252:
            case 253:
            case 254:
            case 255:
            case 256:
            case 257:
            case 261:
            case 264:
            case 265:
                {
                alt89=5;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 89, 0, input);

                throw nvae;
            }

            switch (alt89) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:561:9: simpleType
                    {
                    pushFollow(FOLLOW_simpleType_in_type2726);
                    simpleType();

                    state._fsp--;
                    if (state.failed) return retval;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:562:9: objectType
                    {
                    pushFollow(FOLLOW_objectType_in_type2736);
                    objectType();

                    state._fsp--;
                    if (state.failed) return retval;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:563:8: arrayType
                    {
                    pushFollow(FOLLOW_arrayType_in_type2745);
                    arrayType();

                    state._fsp--;
                    if (state.failed) return retval;

                    }
                    break;
                case 4 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:564:9: pointerType
                    {
                    pushFollow(FOLLOW_pointerType_in_type2755);
                    pointerType();

                    state._fsp--;
                    if (state.failed) return retval;

                    }
                    break;
                case 5 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:565:8: cType
                    {
                    pushFollow(FOLLOW_cType_in_type2764);
                    cType();

                    state._fsp--;
                    if (state.failed) return retval;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "type"


    // $ANTLR start "simpleType"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:568:1: simpleType : ^( TYPE qualifiedPrimative ) ;
    public final void simpleType() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:569:5: ( ^( TYPE qualifiedPrimative ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:569:8: ^( TYPE qualifiedPrimative )
            {
            match(input,TYPE,FOLLOW_TYPE_in_simpleType2788); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_qualifiedPrimative_in_simpleType2790);
            qualifiedPrimative();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "simpleType"


    // $ANTLR start "objectType"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:572:1: objectType : ^( TYPE qualifiedType ) ;
    public final void objectType() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:573:5: ( ^( TYPE qualifiedType ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:573:9: ^( TYPE qualifiedType )
            {
            match(input,TYPE,FOLLOW_TYPE_in_objectType2817); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_qualifiedType_in_objectType2819);
            qualifiedType();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "objectType"

    public static class qualifiedType_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "qualifiedType"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:577:1: qualifiedType : ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) ;
    public final ForteCDFTree.qualifiedType_return qualifiedType() throws RecognitionException {
        ForteCDFTree.qualifiedType_return retval = new ForteCDFTree.qualifiedType_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:578:5: ( ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:578:9: ^( QUALIFIED_TYPE_IDENT ( typeIdent )+ )
            {
            match(input,QUALIFIED_TYPE_IDENT,FOLLOW_QUALIFIED_TYPE_IDENT_in_qualifiedType2842); if (state.failed) return retval;

            match(input, Token.DOWN, null); if (state.failed) return retval;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:578:32: ( typeIdent )+
            int cnt90=0;
            loop90:
            do {
                int alt90=2;
                int LA90_0 = input.LA(1);

                if ( (LA90_0==IDENTIFIER||LA90_0==FRAMEWORK||(LA90_0>=266 && LA90_0<=298)) ) {
                    alt90=1;
                }


                switch (alt90) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: typeIdent
                  {
                  pushFollow(FOLLOW_typeIdent_in_qualifiedType2844);
                  typeIdent();

                  state._fsp--;
                  if (state.failed) return retval;

                  }
                  break;

              default :
                  if ( cnt90 >= 1 ) break loop90;
                  if (state.backtracking>0) {state.failed=true; return retval;}
                        EarlyExitException eee =
                            new EarlyExitException(90, input);
                        throw eee;
                }
                cnt90++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return retval;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "qualifiedType"


    // $ANTLR start "typeIdent"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:582:1: typeIdent : ( IDENTIFIER | systemProject );
    public final void typeIdent() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:583:5: ( IDENTIFIER | systemProject )
            int alt91=2;
            int LA91_0 = input.LA(1);

            if ( (LA91_0==IDENTIFIER) ) {
                alt91=1;
            }
            else if ( (LA91_0==FRAMEWORK||(LA91_0>=266 && LA91_0<=298)) ) {
                alt91=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 91, 0, input);

                throw nvae;
            }
            switch (alt91) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:583:9: IDENTIFIER
                    {
                    match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_typeIdent2867); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:584:8: systemProject
                    {
                    pushFollow(FOLLOW_systemProject_in_typeIdent2877);
                    systemProject();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "typeIdent"

    public static class qualifiedName_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "qualifiedName"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:589:1: qualifiedName : ( name | ^( QUALIFIED_NAME qualifiedName name ) );
    public final ForteCDFTree.qualifiedName_return qualifiedName() throws RecognitionException {
        ForteCDFTree.qualifiedName_return retval = new ForteCDFTree.qualifiedName_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:590:7: ( name | ^( QUALIFIED_NAME qualifiedName name ) )
            int alt92=2;
            int LA92_0 = input.LA(1);

            if ( (LA92_0==IDENTIFIER||LA92_0==230) ) {
                alt92=1;
            }
            else if ( (LA92_0==QUALIFIED_NAME) ) {
                alt92=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 92, 0, input);

                throw nvae;
            }
            switch (alt92) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:590:9: name
                    {
                    pushFollow(FOLLOW_name_in_qualifiedName2898);
                    name();

                    state._fsp--;
                    if (state.failed) return retval;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:591:9: ^( QUALIFIED_NAME qualifiedName name )
                    {
                    match(input,QUALIFIED_NAME,FOLLOW_QUALIFIED_NAME_in_qualifiedName2909); if (state.failed) return retval;

                    match(input, Token.DOWN, null); if (state.failed) return retval;
                    pushFollow(FOLLOW_qualifiedName_in_qualifiedName2911);
                    qualifiedName();

                    state._fsp--;
                    if (state.failed) return retval;
                    pushFollow(FOLLOW_name_in_qualifiedName2913);
                    name();

                    state._fsp--;
                    if (state.failed) return retval;

                    match(input, Token.UP, null); if (state.failed) return retval;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "qualifiedName"


    // $ANTLR start "reservedPrefix"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:595:1: reservedPrefix : ( SELF | SUPER | TASK | TRANSACTION );
    public final void reservedPrefix() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:596:3: ( SELF | SUPER | TASK | TRANSACTION )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( input.LA(1)==TRANSACTION||input.LA(1)==TASK||(input.LA(1)>=SELF && input.LA(1)<=SUPER) ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "reservedPrefix"


    // $ANTLR start "arrayType"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:603:1: arrayType : ^( ARRAY_TYPE qualifiedType ) ;
    public final void arrayType() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:604:3: ( ^( ARRAY_TYPE qualifiedType ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:604:5: ^( ARRAY_TYPE qualifiedType )
            {
            match(input,ARRAY_TYPE,FOLLOW_ARRAY_TYPE_in_arrayType2966); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_qualifiedType_in_arrayType2968);
            qualifiedType();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "arrayType"


    // $ANTLR start "arrayDeclarator"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:607:1: arrayDeclarator : ^( ARRAY_CSTYLE INTLITERAL INTLITERAL ) ;
    public final void arrayDeclarator() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:608:5: ( ^( ARRAY_CSTYLE INTLITERAL INTLITERAL ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:608:9: ^( ARRAY_CSTYLE INTLITERAL INTLITERAL )
            {
            match(input,ARRAY_CSTYLE,FOLLOW_ARRAY_CSTYLE_in_arrayDeclarator2988); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,INTLITERAL,FOLLOW_INTLITERAL_in_arrayDeclarator2990); if (state.failed) return ;
            match(input,INTLITERAL,FOLLOW_INTLITERAL_in_arrayDeclarator2992); if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "arrayDeclarator"


    // $ANTLR start "pointerType"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:612:1: pointerType : ^( POINTER_TYPE simpleType ) ;
    public final void pointerType() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:613:2: ( ^( POINTER_TYPE simpleType ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:613:4: ^( POINTER_TYPE simpleType )
            {
            match(input,POINTER_TYPE,FOLLOW_POINTER_TYPE_in_pointerType3012); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            pushFollow(FOLLOW_simpleType_in_pointerType3014);
            simpleType();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "pointerType"


    // $ANTLR start "qualifiedPrimative"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:617:1: qualifiedPrimative : primitiveType ;
    public final void qualifiedPrimative() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:618:2: ( primitiveType )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:618:4: primitiveType
            {
            pushFollow(FOLLOW_primitiveType_in_qualifiedPrimative3027);
            primitiveType();

            state._fsp--;
            if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "qualifiedPrimative"


    // $ANTLR start "transType"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:621:1: transType : ( DEPENDENT | NESTED | INDEPENDENT );
    public final void transType() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:622:2: ( DEPENDENT | NESTED | INDEPENDENT )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( (input.LA(1)>=DEPENDENT && input.LA(1)<=INDEPENDENT) ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "transType"


    // $ANTLR start "primitiveType"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:627:1: primitiveType : ( 'boolean' | 'string' | 'integer' | 'int' | 'double' | 'char' | 'uchar' | 'short' | 'float' | 'long' | 'ui1' | 'ui2' | 'ui4' | 'i1' | 'i2' | 'i4' | array );
    public final void primitiveType() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:628:5: ( 'boolean' | 'string' | 'integer' | 'int' | 'double' | 'char' | 'uchar' | 'short' | 'float' | 'long' | 'ui1' | 'ui2' | 'ui4' | 'i1' | 'i2' | 'i4' | array )
            int alt93=17;
            switch ( input.LA(1) ) {
            case 248:
                {
                alt93=1;
                }
                break;
            case 249:
                {
                alt93=2;
                }
                break;
            case 250:
                {
                alt93=3;
                }
                break;
            case 251:
                {
                alt93=4;
                }
                break;
            case 252:
                {
                alt93=5;
                }
                break;
            case 253:
                {
                alt93=6;
                }
                break;
            case 254:
                {
                alt93=7;
                }
                break;
            case 255:
                {
                alt93=8;
                }
                break;
            case 256:
                {
                alt93=9;
                }
                break;
            case 257:
                {
                alt93=10;
                }
                break;
            case 258:
                {
                alt93=11;
                }
                break;
            case 259:
                {
                alt93=12;
                }
                break;
            case 260:
                {
                alt93=13;
                }
                break;
            case 261:
                {
                alt93=14;
                }
                break;
            case 262:
                {
                alt93=15;
                }
                break;
            case 263:
                {
                alt93=16;
                }
                break;
            case ARRAY:
            case LARAGEARRAY:
            case GENERICARRAY:
                {
                alt93=17;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 93, 0, input);

                throw nvae;
            }

            switch (alt93) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:628:9: 'boolean'
                    {
                    match(input,248,FOLLOW_248_in_primitiveType3067); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:629:9: 'string'
                    {
                    match(input,249,FOLLOW_249_in_primitiveType3077); if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:630:9: 'integer'
                    {
                    match(input,250,FOLLOW_250_in_primitiveType3087); if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:631:9: 'int'
                    {
                    match(input,251,FOLLOW_251_in_primitiveType3097); if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:632:9: 'double'
                    {
                    match(input,252,FOLLOW_252_in_primitiveType3107); if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:633:9: 'char'
                    {
                    match(input,253,FOLLOW_253_in_primitiveType3117); if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:634:8: 'uchar'
                    {
                    match(input,254,FOLLOW_254_in_primitiveType3126); if (state.failed) return ;

                    }
                    break;
                case 8 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:635:9: 'short'
                    {
                    match(input,255,FOLLOW_255_in_primitiveType3136); if (state.failed) return ;

                    }
                    break;
                case 9 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:636:9: 'float'
                    {
                    match(input,256,FOLLOW_256_in_primitiveType3146); if (state.failed) return ;

                    }
                    break;
                case 10 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:637:9: 'long'
                    {
                    match(input,257,FOLLOW_257_in_primitiveType3156); if (state.failed) return ;

                    }
                    break;
                case 11 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:638:9: 'ui1'
                    {
                    match(input,258,FOLLOW_258_in_primitiveType3166); if (state.failed) return ;

                    }
                    break;
                case 12 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:639:9: 'ui2'
                    {
                    match(input,259,FOLLOW_259_in_primitiveType3176); if (state.failed) return ;

                    }
                    break;
                case 13 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:640:9: 'ui4'
                    {
                    match(input,260,FOLLOW_260_in_primitiveType3186); if (state.failed) return ;

                    }
                    break;
                case 14 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:641:9: 'i1'
                    {
                    match(input,261,FOLLOW_261_in_primitiveType3196); if (state.failed) return ;

                    }
                    break;
                case 15 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:642:9: 'i2'
                    {
                    match(input,262,FOLLOW_262_in_primitiveType3206); if (state.failed) return ;

                    }
                    break;
                case 16 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:643:9: 'i4'
                    {
                    match(input,263,FOLLOW_263_in_primitiveType3216); if (state.failed) return ;

                    }
                    break;
                case 17 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:644:9: array
                    {
                    pushFollow(FOLLOW_array_in_primitiveType3226);
                    array();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "primitiveType"


    // $ANTLR start "cType"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:647:1: cType : ( 'int' | 'short' | 'long' | 'float' | 'double' | 'char' | 'iu1' | 'i1' | 'string' | 'pointer' | 'uchar' | cStruct | cEnum );
    public final void cType() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:648:3: ( 'int' | 'short' | 'long' | 'float' | 'double' | 'char' | 'iu1' | 'i1' | 'string' | 'pointer' | 'uchar' | cStruct | cEnum )
            int alt94=13;
            switch ( input.LA(1) ) {
            case 251:
                {
                alt94=1;
                }
                break;
            case 255:
                {
                alt94=2;
                }
                break;
            case 257:
                {
                alt94=3;
                }
                break;
            case 256:
                {
                alt94=4;
                }
                break;
            case 252:
                {
                alt94=5;
                }
                break;
            case 253:
                {
                alt94=6;
                }
                break;
            case 264:
                {
                alt94=7;
                }
                break;
            case 261:
                {
                alt94=8;
                }
                break;
            case 249:
                {
                alt94=9;
                }
                break;
            case 265:
                {
                alt94=10;
                }
                break;
            case 254:
                {
                alt94=11;
                }
                break;
            case STRUCT:
                {
                alt94=12;
                }
                break;
            case ENUM:
                {
                alt94=13;
                }
                break;
            default:
                if (state.backtracking>0) {state.failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("", 94, 0, input);

                throw nvae;
            }

            switch (alt94) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:648:5: 'int'
                    {
                    match(input,251,FOLLOW_251_in_cType3242); if (state.failed) return ;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:649:5: 'short'
                    {
                    match(input,255,FOLLOW_255_in_cType3248); if (state.failed) return ;

                    }
                    break;
                case 3 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:650:5: 'long'
                    {
                    match(input,257,FOLLOW_257_in_cType3254); if (state.failed) return ;

                    }
                    break;
                case 4 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:651:5: 'float'
                    {
                    match(input,256,FOLLOW_256_in_cType3260); if (state.failed) return ;

                    }
                    break;
                case 5 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:652:5: 'double'
                    {
                    match(input,252,FOLLOW_252_in_cType3266); if (state.failed) return ;

                    }
                    break;
                case 6 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:653:5: 'char'
                    {
                    match(input,253,FOLLOW_253_in_cType3272); if (state.failed) return ;

                    }
                    break;
                case 7 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:654:5: 'iu1'
                    {
                    match(input,264,FOLLOW_264_in_cType3278); if (state.failed) return ;

                    }
                    break;
                case 8 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:655:5: 'i1'
                    {
                    match(input,261,FOLLOW_261_in_cType3284); if (state.failed) return ;

                    }
                    break;
                case 9 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:656:5: 'string'
                    {
                    match(input,249,FOLLOW_249_in_cType3290); if (state.failed) return ;

                    }
                    break;
                case 10 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:657:5: 'pointer'
                    {
                    match(input,265,FOLLOW_265_in_cType3296); if (state.failed) return ;

                    }
                    break;
                case 11 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:658:5: 'uchar'
                    {
                    match(input,254,FOLLOW_254_in_cType3302); if (state.failed) return ;

                    }
                    break;
                case 12 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:659:5: cStruct
                    {
                    pushFollow(FOLLOW_cStruct_in_cType3308);
                    cStruct();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;
                case 13 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:660:5: cEnum
                    {
                    pushFollow(FOLLOW_cEnum_in_cType3314);
                    cEnum();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "cType"


    // $ANTLR start "cStruct"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:663:1: cStruct : ^( STRUCT IDENTIFIER ( IDENTIFIER cType )+ ) ;
    public final void cStruct() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:664:2: ( ^( STRUCT IDENTIFIER ( IDENTIFIER cType )+ ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:664:4: ^( STRUCT IDENTIFIER ( IDENTIFIER cType )+ )
            {
            match(input,STRUCT,FOLLOW_STRUCT_in_cStruct3327); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_cStruct3329); if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:664:24: ( IDENTIFIER cType )+
            int cnt95=0;
            loop95:
            do {
                int alt95=2;
                int LA95_0 = input.LA(1);

                if ( (LA95_0==IDENTIFIER) ) {
                    alt95=1;
                }


                switch (alt95) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:664:25: IDENTIFIER cType
                  {
                  match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_cStruct3332); if (state.failed) return ;
                  pushFollow(FOLLOW_cType_in_cStruct3334);
                  cType();

                  state._fsp--;
                  if (state.failed) return ;

                  }
                  break;

              default :
                  if ( cnt95 >= 1 ) break loop95;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(95, input);
                        throw eee;
                }
                cnt95++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "cStruct"


    // $ANTLR start "cEnum"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:667:1: cEnum : ^( ENUM IDENTIFIER ( IDENTIFIER ( literal )? )+ ) ;
    public final void cEnum() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:668:2: ( ^( ENUM IDENTIFIER ( IDENTIFIER ( literal )? )+ ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:668:4: ^( ENUM IDENTIFIER ( IDENTIFIER ( literal )? )+ )
            {
            match(input,ENUM,FOLLOW_ENUM_in_cEnum3349); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_cEnum3351); if (state.failed) return ;
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:668:22: ( IDENTIFIER ( literal )? )+
            int cnt97=0;
            loop97:
            do {
                int alt97=2;
                int LA97_0 = input.LA(1);

                if ( (LA97_0==IDENTIFIER) ) {
                    alt97=1;
                }


                switch (alt97) {
              case 1 :
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:668:23: IDENTIFIER ( literal )?
                  {
                  match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_cEnum3354); if (state.failed) return ;
                  // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:668:34: ( literal )?
                  int alt96=2;
                  int LA96_0 = input.LA(1);

                  if ( ((LA96_0>=INTLITERAL && LA96_0<=STRINGLITERAL)||LA96_0==NIL||LA96_0==FALSE||LA96_0==TRUE||(LA96_0>=HEXLITERAL && LA96_0<=FLOATLITERAL)) ) {
                      alt96=1;
                  }
                  switch (alt96) {
                      case 1 :
                          // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: literal
                          {
                          pushFollow(FOLLOW_literal_in_cEnum3356);
                          literal();

                          state._fsp--;
                          if (state.failed) return ;

                          }
                          break;

                  }


                  }
                  break;

              default :
                  if ( cnt97 >= 1 ) break loop97;
                  if (state.backtracking>0) {state.failed=true; return ;}
                        EarlyExitException eee =
                            new EarlyExitException(97, input);
                        throw eee;
                }
                cnt97++;
            } while (true);


            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "cEnum"


    // $ANTLR start "cTypeDef"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:671:1: cTypeDef : ^( TYPEDEF IDENTIFIER cType ) ;
    public final void cTypeDef() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:672:3: ( ^( TYPEDEF IDENTIFIER cType ) )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:672:5: ^( TYPEDEF IDENTIFIER cType )
            {
            match(input,TYPEDEF,FOLLOW_TYPEDEF_in_cTypeDef3374); if (state.failed) return ;

            match(input, Token.DOWN, null); if (state.failed) return ;
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_cTypeDef3376); if (state.failed) return ;
            pushFollow(FOLLOW_cType_in_cTypeDef3378);
            cType();

            state._fsp--;
            if (state.failed) return ;

            match(input, Token.UP, null); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "cTypeDef"


    // $ANTLR start "array"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:676:1: array : ( ARRAY | LARAGEARRAY | GENERICARRAY ) ( arrayDeclarator )? ;
    public final void array() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:677:2: ( ( ARRAY | LARAGEARRAY | GENERICARRAY ) ( arrayDeclarator )? )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:677:4: ( ARRAY | LARAGEARRAY | GENERICARRAY ) ( arrayDeclarator )?
            {
            if ( (input.LA(1)>=ARRAY && input.LA(1)<=GENERICARRAY) ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }

            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:678:3: ( arrayDeclarator )?
            int alt98=2;
            int LA98_0 = input.LA(1);

            if ( (LA98_0==ARRAY_CSTYLE) ) {
                alt98=1;
            }
            switch (alt98) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:0:0: arrayDeclarator
                    {
                    pushFollow(FOLLOW_arrayDeclarator_in_array3404);
                    arrayDeclarator();

                    state._fsp--;
                    if (state.failed) return ;

                    }
                    break;

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "array"


    // $ANTLR start "userProject"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:681:1: userProject : IDENTIFIER ;
    public final void userProject() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:682:5: ( IDENTIFIER )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:682:7: IDENTIFIER
            {
            match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_userProject3420); if (state.failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "userProject"


    // $ANTLR start "systemProject"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:685:1: systemProject : ( 'APPC' | 'Configuration' | 'Corba' | 'CosNaming' | 'DB2' | 'DCE' | 'DDEProject' | 'DisplayProject' | 'EnvManagement' | 'ForeignObjMgr' | FRAMEWORK | 'GenericDBMS' | 'GenericRepository' | 'HTTP' | 'HTTPSupport' | 'Informix' | 'Ingres' | 'LDAP' | 'ODBC' | 'OLE' | 'OLE2' | 'Oracle' | 'Oracle7' | 'Rdb' | 'Sybase' | 'SybaseCTLib' | 'SystemMonitor' | 'TOOLCompiler' | 'TOOLInterpreter' | 'XMLDOM2' | 'XMLParser' | 'XMLSAX2' | 'XMLSvr' | 'XSLT' );
    public final void systemProject() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:686:5: ( 'APPC' | 'Configuration' | 'Corba' | 'CosNaming' | 'DB2' | 'DCE' | 'DDEProject' | 'DisplayProject' | 'EnvManagement' | 'ForeignObjMgr' | FRAMEWORK | 'GenericDBMS' | 'GenericRepository' | 'HTTP' | 'HTTPSupport' | 'Informix' | 'Ingres' | 'LDAP' | 'ODBC' | 'OLE' | 'OLE2' | 'Oracle' | 'Oracle7' | 'Rdb' | 'Sybase' | 'SybaseCTLib' | 'SystemMonitor' | 'TOOLCompiler' | 'TOOLInterpreter' | 'XMLDOM2' | 'XMLParser' | 'XMLSAX2' | 'XMLSvr' | 'XSLT' )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( input.LA(1)==FRAMEWORK||(input.LA(1)>=266 && input.LA(1)<=298) ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "systemProject"

    public static class name_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "name"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:729:1: name : ( '\"' reservedWord '\"' | IDENTIFIER );
    public final ForteCDFTree.name_return name() throws RecognitionException {
        ForteCDFTree.name_return retval = new ForteCDFTree.name_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:730:2: ( '\"' reservedWord '\"' | IDENTIFIER )
            int alt99=2;
            int LA99_0 = input.LA(1);

            if ( (LA99_0==230) ) {
                alt99=1;
            }
            else if ( (LA99_0==IDENTIFIER) ) {
                alt99=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                NoViableAltException nvae =
                    new NoViableAltException("", 99, 0, input);

                throw nvae;
            }
            switch (alt99) {
                case 1 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:730:5: '\"' reservedWord '\"'
                    {
                    match(input,230,FOLLOW_230_in_name3719); if (state.failed) return retval;
                    pushFollow(FOLLOW_reservedWord_in_name3721);
                    reservedWord();

                    state._fsp--;
                    if (state.failed) return retval;
                    match(input,230,FOLLOW_230_in_name3723); if (state.failed) return retval;

                    }
                    break;
                case 2 :
                    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:731:6: IDENTIFIER
                    {
                    match(input,IDENTIFIER,FOLLOW_IDENTIFIER_in_name3730); if (state.failed) return retval;

                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "name"


    // $ANTLR start "reservedWord"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:734:1: reservedWord : ( AND | ATTRIBUTE | BEGIN | CASE | CHANGED | CLASS | CONSTANT | CONTINUE | COPY | CURSOR | DO | ELSE | ELSEIF | END | ENUM | EVENT | EXCEPTION | EXIT | FALSE | FOR | FORWARD | FROM | HANDLER | HAS | IF | IMPLEMENTS | IN | INCLUDES | INHERITS | INPUT | INTERFACE | IS | LOOP | METHOD | NEW | NIL | NOT | OF | OUTPUT | POST | POSTREGISTER | PREREGISTER | PRIVATE | PROPERTY | PUBLIC | RAISE | REGISTER | RETURN | SELF | SERVICE | START | STRUCT | SUPER | TASK | THEN | TO | TRANSACTION | TRUE | TYPEDEF | UNION | VIRTUAL | WHEN | WHERE | WHILE );
    public final void reservedWord() throws RecognitionException {
        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:735:2: ( AND | ATTRIBUTE | BEGIN | CASE | CHANGED | CLASS | CONSTANT | CONTINUE | COPY | CURSOR | DO | ELSE | ELSEIF | END | ENUM | EVENT | EXCEPTION | EXIT | FALSE | FOR | FORWARD | FROM | HANDLER | HAS | IF | IMPLEMENTS | IN | INCLUDES | INHERITS | INPUT | INTERFACE | IS | LOOP | METHOD | NEW | NIL | NOT | OF | OUTPUT | POST | POSTREGISTER | PREREGISTER | PRIVATE | PROPERTY | PUBLIC | RAISE | REGISTER | RETURN | SELF | SERVICE | START | STRUCT | SUPER | TASK | THEN | TO | TRANSACTION | TRUE | TYPEDEF | UNION | VIRTUAL | WHEN | WHERE | WHILE )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( input.LA(1)==BEGIN||input.LA(1)==FROM||(input.LA(1)>=END && input.LA(1)<=PROPERTY)||input.LA(1)==CLASS||input.LA(1)==METHOD||(input.LA(1)>=FORWARD && input.LA(1)<=IS)||(input.LA(1)>=INTERFACE && input.LA(1)<=STRUCT)||(input.LA(1)>=NIL && input.LA(1)<=SERVICE)||(input.LA(1)>=TRANSACTION && input.LA(1)<=IMPLEMENTS)||input.LA(1)==ATTRIBUTE||(input.LA(1)>=VIRTUAL && input.LA(1)<=WHERE)||(input.LA(1)>=RETURN && input.LA(1)<=TO)||(input.LA(1)>=EXIT && input.LA(1)<=TASK)||input.LA(1)==AND||(input.LA(1)>=NOT && input.LA(1)<=OF)||(input.LA(1)>=ENUM && input.LA(1)<=UNION) ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return ;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "reservedWord"

    public static class literal_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "literal"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:803:1: literal : ( HEXLITERAL | INTLITERAL | FLOATLITERAL | STRINGLITERAL | TRUE | FALSE | NIL );
    public final ForteCDFTree.literal_return literal() throws RecognitionException {
        ForteCDFTree.literal_return retval = new ForteCDFTree.literal_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:804:5: ( HEXLITERAL | INTLITERAL | FLOATLITERAL | STRINGLITERAL | TRUE | FALSE | NIL )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( (input.LA(1)>=INTLITERAL && input.LA(1)<=STRINGLITERAL)||input.LA(1)==NIL||input.LA(1)==FALSE||input.LA(1)==TRUE||(input.LA(1)>=HEXLITERAL && input.LA(1)<=FLOATLITERAL) ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "literal"

    public static class booleanLiteral_return extends TreeRuleReturnScope {
    };

    // $ANTLR start "booleanLiteral"
    // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:813:1: booleanLiteral : ( TRUE | FALSE );
    public final ForteCDFTree.booleanLiteral_return booleanLiteral() throws RecognitionException {
        ForteCDFTree.booleanLiteral_return retval = new ForteCDFTree.booleanLiteral_return();
        retval.start = input.LT(1);

        try {
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:814:3: ( TRUE | FALSE )
            // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:
            {
            if ( input.LA(1)==FALSE||input.LA(1)==TRUE ) {
                input.consume();
                state.errorRecovery=false;state.failed=false;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return retval;}
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "booleanLiteral"

    // $ANTLR start synpred22_ForteCDFTree
    public final void synpred22_ForteCDFTree_fragment() throws RecognitionException {  
        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:166:5: ( formalParameters )
        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:166:5: formalParameters
        {
        pushFollow(FOLLOW_formalParameters_in_synpred22_ForteCDFTree532);
        formalParameters();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred22_ForteCDFTree

    // $ANTLR start synpred27_ForteCDFTree
    public final void synpred27_ForteCDFTree_fragment() throws RecognitionException {  
        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:182:50: ( formalParameters )
        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:182:50: formalParameters
        {
        pushFollow(FOLLOW_formalParameters_in_synpred27_ForteCDFTree605);
        formalParameters();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred27_ForteCDFTree

    // $ANTLR start synpred54_ForteCDFTree
    public final void synpred54_ForteCDFTree_fragment() throws RecognitionException {  
        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:294:5: ( raiseStatement )
        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:294:5: raiseStatement
        {
        pushFollow(FOLLOW_raiseStatement_in_synpred54_ForteCDFTree1067);
        raiseStatement();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred54_ForteCDFTree

    // $ANTLR start synpred64_ForteCDFTree
    public final void synpred64_ForteCDFTree_fragment() throws RecognitionException {  
        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:304:5: ( raiseStatement )
        // /Users/peter/Documents/workspace/ToolModel/src/tool/model/grammar/ForteCDFTree.g:304:5: raiseStatement
        {
        pushFollow(FOLLOW_raiseStatement_in_synpred64_ForteCDFTree1129);
        raiseStatement();

        state._fsp--;
        if (state.failed) return ;

        }
    }
    // $ANTLR end synpred64_ForteCDFTree

    // Delegated rules

    public final boolean synpred64_ForteCDFTree() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred64_ForteCDFTree_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred27_ForteCDFTree() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred27_ForteCDFTree_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred54_ForteCDFTree() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred54_ForteCDFTree_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }
    public final boolean synpred22_ForteCDFTree() {
        state.backtracking++;
        int start = input.mark();
        try {
            synpred22_ForteCDFTree_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !state.failed;
        input.rewind(start);
        state.backtracking--;
        state.failed=false;
        return success;
    }


    protected DFA10 dfa10 = new DFA10(this);
    protected DFA17 dfa17 = new DFA17(this);
    protected DFA35 dfa35 = new DFA35(this);
    static final String DFA10_eotS =
        "\13\uffff";
    static final String DFA10_eofS =
        "\13\uffff";
    static final String DFA10_minS =
        "\1\37\1\2\5\uffff\1\u00cc\1\157\2\uffff";
    static final String DFA10_maxS =
        "\1\u0099\1\2\5\uffff\1\u00f7\1\u00e6\2\uffff";
    static final String DFA10_acceptS =
        "\2\uffff\1\3\1\4\1\5\1\6\1\7\2\uffff\1\2\1\1";
    static final String DFA10_specialS =
        "\13\uffff}>";
    static final String[] DFA10_transitionS = {
            "\1\4\2\uffff\1\3\1\5\3\uffff\1\2\1\1\160\uffff\1\6",
            "\1\7",
            "",
            "",
            "",
            "",
            "",
            "\2\10\50\uffff\2\10",
            "\1\12\41\uffff\1\11\124\uffff\1\12",
            "",
            ""
    };

    static final short[] DFA10_eot = DFA.unpackEncodedString(DFA10_eotS);
    static final short[] DFA10_eof = DFA.unpackEncodedString(DFA10_eofS);
    static final char[] DFA10_min = DFA.unpackEncodedStringToUnsignedChars(DFA10_minS);
    static final char[] DFA10_max = DFA.unpackEncodedStringToUnsignedChars(DFA10_maxS);
    static final short[] DFA10_accept = DFA.unpackEncodedString(DFA10_acceptS);
    static final short[] DFA10_special = DFA.unpackEncodedString(DFA10_specialS);
    static final short[][] DFA10_transition;

    static {
        int numStates = DFA10_transitionS.length;
        DFA10_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA10_transition[i] = DFA.unpackEncodedString(DFA10_transitionS[i]);
        }
    }

    class DFA10 extends DFA {

        public DFA10(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 10;
            this.eot = DFA10_eot;
            this.eof = DFA10_eof;
            this.min = DFA10_min;
            this.max = DFA10_max;
            this.accept = DFA10_accept;
            this.special = DFA10_special;
            this.transition = DFA10_transition;
        }
        public String getDescription() {
            return "86:1: component_definition : ( attributeDeclaration | windowAttributeDeclaration | virtualAttributeDeclaration | eventDeclaration | methodDeclaration | eventHandlerDeclaration | constantDeclaration[false] );";
        }
    }
    static final String DFA17_eotS =
        "\26\uffff";
    static final String DFA17_eofS =
        "\26\uffff";
    static final String DFA17_minS =
        "\1\3\1\uffff\23\0\1\uffff";
    static final String DFA17_maxS =
        "\1\u00eb\1\uffff\23\0\1\uffff";
    static final String DFA17_acceptS =
        "\1\uffff\1\1\23\uffff\1\2";
    static final String DFA17_specialS =
        "\2\uffff\1\3\1\22\1\1\1\15\1\14\1\20\1\4\1\16\1\13\1\10\1\21\1\17"+
        "\1\0\1\7\1\12\1\2\1\5\1\11\1\6\1\uffff}>";
    static final String[] DFA17_transitionS = {
            "\1\24\16\uffff\1\3\22\uffff\1\16\1\15\5\uffff\1\1\1\uffff\1"+
            "\22\1\uffff\1\4\16\uffff\1\21\125\uffff\1\2\1\23\2\uffff\1\5"+
            "\1\13\4\uffff\1\6\1\7\1\14\1\12\1\17\2\uffff\1\11\1\10\52\uffff"+
            "\1\20\30\uffff\1\20",
            "",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            "\1\uffff",
            ""
    };

    static final short[] DFA17_eot = DFA.unpackEncodedString(DFA17_eotS);
    static final short[] DFA17_eof = DFA.unpackEncodedString(DFA17_eofS);
    static final char[] DFA17_min = DFA.unpackEncodedStringToUnsignedChars(DFA17_minS);
    static final char[] DFA17_max = DFA.unpackEncodedStringToUnsignedChars(DFA17_maxS);
    static final short[] DFA17_accept = DFA.unpackEncodedString(DFA17_acceptS);
    static final short[] DFA17_special = DFA.unpackEncodedString(DFA17_specialS);
    static final short[][] DFA17_transition;

    static {
        int numStates = DFA17_transitionS.length;
        DFA17_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA17_transition[i] = DFA.unpackEncodedString(DFA17_transitionS[i]);
        }
    }

    class DFA17 extends DFA {

        public DFA17(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 17;
            this.eot = DFA17_eot;
            this.eof = DFA17_eof;
            this.min = DFA17_min;
            this.max = DFA17_max;
            this.accept = DFA17_accept;
            this.special = DFA17_special;
            this.transition = DFA17_transition;
        }
        public String getDescription() {
            return "166:5: ( formalParameters )?";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TreeNodeStream input = (TreeNodeStream)_input;
          int _s = s;
            switch ( s ) {
                    case 0 :
                        int LA17_14 = input.LA(1);

                        
                        int index17_14 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_14);
                        if ( s>=0 ) return s;
                        break;
                    case 1 :
                        int LA17_4 = input.LA(1);

                        
                        int index17_4 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_4);
                        if ( s>=0 ) return s;
                        break;
                    case 2 :
                        int LA17_17 = input.LA(1);

                        
                        int index17_17 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_17);
                        if ( s>=0 ) return s;
                        break;
                    case 3 :
                        int LA17_2 = input.LA(1);

                        
                        int index17_2 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_2);
                        if ( s>=0 ) return s;
                        break;
                    case 4 :
                        int LA17_8 = input.LA(1);

                        
                        int index17_8 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_8);
                        if ( s>=0 ) return s;
                        break;
                    case 5 :
                        int LA17_18 = input.LA(1);

                        
                        int index17_18 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_18);
                        if ( s>=0 ) return s;
                        break;
                    case 6 :
                        int LA17_20 = input.LA(1);

                        
                        int index17_20 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_20);
                        if ( s>=0 ) return s;
                        break;
                    case 7 :
                        int LA17_15 = input.LA(1);

                        
                        int index17_15 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_15);
                        if ( s>=0 ) return s;
                        break;
                    case 8 :
                        int LA17_11 = input.LA(1);

                        
                        int index17_11 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_11);
                        if ( s>=0 ) return s;
                        break;
                    case 9 :
                        int LA17_19 = input.LA(1);

                        
                        int index17_19 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_19);
                        if ( s>=0 ) return s;
                        break;
                    case 10 :
                        int LA17_16 = input.LA(1);

                        
                        int index17_16 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_16);
                        if ( s>=0 ) return s;
                        break;
                    case 11 :
                        int LA17_10 = input.LA(1);

                        
                        int index17_10 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_10);
                        if ( s>=0 ) return s;
                        break;
                    case 12 :
                        int LA17_6 = input.LA(1);

                        
                        int index17_6 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_6);
                        if ( s>=0 ) return s;
                        break;
                    case 13 :
                        int LA17_5 = input.LA(1);

                        
                        int index17_5 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_5);
                        if ( s>=0 ) return s;
                        break;
                    case 14 :
                        int LA17_9 = input.LA(1);

                        
                        int index17_9 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_9);
                        if ( s>=0 ) return s;
                        break;
                    case 15 :
                        int LA17_13 = input.LA(1);

                        
                        int index17_13 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_13);
                        if ( s>=0 ) return s;
                        break;
                    case 16 :
                        int LA17_7 = input.LA(1);

                        
                        int index17_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_7);
                        if ( s>=0 ) return s;
                        break;
                    case 17 :
                        int LA17_12 = input.LA(1);

                        
                        int index17_12 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_12);
                        if ( s>=0 ) return s;
                        break;
                    case 18 :
                        int LA17_3 = input.LA(1);

                        
                        int index17_3 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred22_ForteCDFTree()) ) {s = 1;}

                        else if ( (true) ) {s = 21;}

                        
                        input.seek(index17_3);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 17, _s, input);
            error(nvae);
            throw nvae;
        }
    }
    static final String DFA35_eotS =
        "\24\uffff";
    static final String DFA35_eofS =
        "\24\uffff";
    static final String DFA35_minS =
        "\1\22\6\uffff\1\0\14\uffff";
    static final String DFA35_maxS =
        "\1\u00eb\6\uffff\1\0\14\uffff";
    static final String DFA35_acceptS =
        "\1\uffff\1\1\1\2\1\3\1\4\1\5\1\6\1\uffff\1\10\1\11\1\12\1\13\1\14"+
        "\1\15\1\16\1\17\1\20\1\22\1\7\1\21";
    static final String DFA35_specialS =
        "\7\uffff\1\0\14\uffff}>";
    static final String[] DFA35_transitionS = {
            "\1\1\22\uffff\1\15\1\14\7\uffff\1\21\1\uffff\1\2\16\uffff\1"+
            "\20\125\uffff\1\10\3\uffff\1\3\1\12\4\uffff\1\4\1\5\1\13\1\11"+
            "\1\16\2\uffff\1\7\1\6\52\uffff\1\17\30\uffff\1\17",
            "",
            "",
            "",
            "",
            "",
            "",
            "\1\uffff",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

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

    static {
        int numStates = DFA35_transitionS.length;
        DFA35_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA35_transition[i] = DFA.unpackEncodedString(DFA35_transitionS[i]);
        }
    }

    class DFA35 extends DFA {

        public DFA35(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 35;
            this.eot = DFA35_eot;
            this.eof = DFA35_eof;
            this.min = DFA35_min;
            this.max = DFA35_max;
            this.accept = DFA35_accept;
            this.special = DFA35_special;
            this.transition = DFA35_transition;
        }
        public String getDescription() {
            return "286:1: statement : ( expression | localVariableDeclaration | constantDeclaration[false] | exitStatment | continueStatment | postStatement | raiseStatement | returnStatement | whileDoStatement | forStatement | caseStatement | eventLoopStatement | eventCaseStatement | ifStatement | sqlStatement | block | raiseStatement | startTask );";
        }
        public int specialStateTransition(int s, IntStream _input) throws NoViableAltException {
            TreeNodeStream input = (TreeNodeStream)_input;
          int _s = s;
            switch ( s ) {
                    case 0 :
                        int LA35_7 = input.LA(1);

                        
                        int index35_7 = input.index();
                        input.rewind();
                        s = -1;
                        if ( (synpred54_ForteCDFTree()) ) {s = 18;}

                        else if ( (synpred64_ForteCDFTree()) ) {s = 19;}

                        
                        input.seek(index35_7);
                        if ( s>=0 ) return s;
                        break;
            }
            if (state.backtracking>0) {state.failed=true; return -1;}
            NoViableAltException nvae =
                new NoViableAltException(getDescription(), 35, _s, input);
            error(nvae);
            throw nvae;
        }
    }

    public static final BitSet FOLLOW_INTERFACE_DECLARATION_in_interfaceDeclaration74 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_interfaceDeclaration76 = new BitSet(new long[]{0x0400018C80000000L,0x002000001D814000L,0x0000000002000200L});
    public static final BitSet FOLLOW_objectType_in_interfaceDeclaration78 = new BitSet(new long[]{0x0400018C80000000L,0x002000001D814000L,0x0000000002000200L});
    public static final BitSet FOLLOW_component_definition_in_interfaceDeclaration87 = new BitSet(new long[]{0x0400018C80000000L,0x002000001D814000L,0x0000000002000200L});
    public static final BitSet FOLLOW_classProperties_in_interfaceDeclaration90 = new BitSet(new long[]{0x0400018C80000008L,0x002000001D814000L,0x0000000002000200L});
    public static final BitSet FOLLOW_CLASS_DECLARATION_in_classDeclaration128 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_classDeclaration130 = new BitSet(new long[]{0x1000000000000000L,0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_isMappedClass_in_classDeclaration144 = new BitSet(new long[]{0x1000000000000000L,0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_qualifiedType_in_classDeclaration166 = new BitSet(new long[]{0x0400018C80000000L,0x002000001D814000L,0x0000000002001200L,0x0000000000000100L});
    public static final BitSet FOLLOW_cEnum_in_classDeclaration179 = new BitSet(new long[]{0x0400018C80000000L,0x002000001D814000L,0x0000000002001200L,0x0000000000000100L});
    public static final BitSet FOLLOW_component_definition_in_classDeclaration186 = new BitSet(new long[]{0x0400018C80000000L,0x002000001D814000L,0x0000000002001200L});
    public static final BitSet FOLLOW_IMPLEMENTS_in_classDeclaration196 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_qualifiedType_in_classDeclaration198 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_classProperties_in_classDeclaration208 = new BitSet(new long[]{0x0400018C80000008L,0x012000001D814000L,0x0000000002000200L});
    public static final BitSet FOLLOW_STRINGLITERAL_in_classDeclaration211 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MAPPED_in_isMappedClass233 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_attributeDeclaration_in_component_definition246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_windowAttributeDeclaration_in_component_definition252 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_virtualAttributeDeclaration_in_component_definition258 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_eventDeclaration_in_component_definition264 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_methodDeclaration_in_component_definition270 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_eventHandlerDeclaration_in_component_definition276 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_constantDeclaration_in_component_definition282 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ATTRIBUTE_DECLARATION_in_attributeDeclaration305 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_modifier_in_attributeDeclaration307 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_name_in_attributeDeclaration309 = new BitSet(new long[]{0x4C00000000000000L,0x0000000000000000L,0x0000000000000008L,0xFA00000000000100L,0x0000000000000323L});
    public static final BitSet FOLLOW_type_in_attributeDeclaration311 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_GENERATED_in_attributeDeclaration314 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ATTRIBUTE_DECLARATION_in_windowAttributeDeclaration336 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_modifier_in_windowAttributeDeclaration338 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000020000L});
    public static final BitSet FOLLOW_WIDGETIDENTFIER_in_windowAttributeDeclaration340 = new BitSet(new long[]{0x4C00000000000000L,0x0000000000000000L,0x0000000000000008L,0xFA00000000000100L,0x0000000000000323L});
    public static final BitSet FOLLOW_type_in_windowAttributeDeclaration342 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_GENERATED_in_windowAttributeDeclaration345 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_VIRTUAL_ATTRIBUTE_in_virtualAttributeDeclaration362 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_modifier_in_virtualAttributeDeclaration364 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_name_in_virtualAttributeDeclaration366 = new BitSet(new long[]{0x4C00000000000000L,0x0000000000000000L,0x0000000000000008L,0xFA00000000000100L,0x0000000000000323L});
    public static final BitSet FOLLOW_type_in_virtualAttributeDeclaration368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
    public static final BitSet FOLLOW_getExpression_in_virtualAttributeDeclaration371 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000002L});
    public static final BitSet FOLLOW_setExpression_in_virtualAttributeDeclaration373 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_GET_EXPRESSION_in_getExpression393 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_getExpression395 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_SET_EXPRESSION_in_setExpression409 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_setExpression411 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_METHOD_DECLARATION_in_methodDeclaration440 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_modifier_in_methodDeclaration447 = new BitSet(new long[]{0x2000000000000000L,0x0000800000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_qualifiedName_in_methodDeclaration449 = new BitSet(new long[]{0x0000100040000008L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_formalParameterDecls_in_methodDeclaration452 = new BitSet(new long[]{0x0000000040000008L,0x0000000000000000L,0x0000000000200000L});
    public static final BitSet FOLLOW_methodReturnDeclaration_in_methodDeclaration467 = new BitSet(new long[]{0x0000000040000008L});
    public static final BitSet FOLLOW_methodCompletion_in_methodDeclaration482 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_METHOD_COMPLETION_in_methodCompletion499 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_methodCompletion501 = new BitSet(new long[]{0x0000000000000008L,0x0000800000000000L});
    public static final BitSet FOLLOW_IDENTIFIER_in_methodCompletion503 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_METHOD_IMPLEMENTATION_in_methodImplementation518 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_qualifiedName_in_methodImplementation525 = new BitSet(new long[]{0x800151EC80040008L,0x0000000000000000L,0x000000CF86600000L,0x0000080000040000L});
    public static final BitSet FOLLOW_formalParameters_in_methodImplementation532 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86600000L,0x0000080000040000L});
    public static final BitSet FOLLOW_methodReturnDeclaration_in_methodImplementation540 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86600000L,0x0000080000040000L});
    public static final BitSet FOLLOW_statement_in_methodImplementation548 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86600000L,0x0000080000040000L});
    public static final BitSet FOLLOW_exceptionBlock_in_methodImplementation556 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EVENT_HANDLER_DECLARATION_in_eventHandlerDeclaration575 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_modifier_in_eventHandlerDeclaration577 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_IDENTIFIER_in_eventHandlerDeclaration579 = new BitSet(new long[]{0x0000100000000008L});
    public static final BitSet FOLLOW_formalParameterDecls_in_eventHandlerDeclaration582 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EVENT_HANDLER_IMPLEMENTATION_in_eventHandlerImplementation601 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_qualifiedName_in_eventHandlerImplementation603 = new BitSet(new long[]{0x0002100000000008L});
    public static final BitSet FOLLOW_formalParameters_in_eventHandlerImplementation605 = new BitSet(new long[]{0x0002000000000008L});
    public static final BitSet FOLLOW_whenEvent_in_eventHandlerImplementation608 = new BitSet(new long[]{0x0002000000000008L});
    public static final BitSet FOLLOW_EVENT_DECLARATION_in_eventDeclaration627 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_modifier_in_eventDeclaration629 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_IDENTIFIER_in_eventDeclaration631 = new BitSet(new long[]{0x0000100000000008L});
    public static final BitSet FOLLOW_formalParameterDecls_in_eventDeclaration634 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CONSTANT_in_constantDeclaration658 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_modifier_in_constantDeclaration660 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_IDENTIFIER_in_constantDeclaration663 = new BitSet(new long[]{0x0000000000000000L,0x0180000000000000L,0x0000000000000040L,0x0000000000034800L});
    public static final BitSet FOLLOW_literal_in_constantDeclaration665 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PROPERTY_in_declatrationTerminator693 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_propertyList_in_declatrationTerminator695 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PROP_RESTRICTED_in_restricted715 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_booleanLiteral_in_restricted717 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_IDENTIFIER_in_file737 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_onOff748 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_superName759 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_isDefault770 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SHARED_in_classProperties787 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_classPropertyDetail_in_classProperties789 = new BitSet(new long[]{0x0000000000000008L,0x0000000002600000L});
    public static final BitSet FOLLOW_TRANSACTIONAL_in_classProperties797 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_classPropertyDetail_in_classProperties799 = new BitSet(new long[]{0x0000000000000008L,0x0000000002600000L});
    public static final BitSet FOLLOW_MONITORED_in_classProperties807 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_classPropertyDetail_in_classProperties809 = new BitSet(new long[]{0x0000000000000008L,0x0000000002600000L});
    public static final BitSet FOLLOW_restricted_in_classProperties816 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DISTRIBUTED_in_classProperties823 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_classPropertyDetail_in_classProperties825 = new BitSet(new long[]{0x0000000000000008L,0x0000000002600000L});
    public static final BitSet FOLLOW_CLASSLINEAGE_in_classProperties833 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_classLineageEntry_in_classProperties835 = new BitSet(new long[]{0x0000000000000008L,0x0000800000000000L});
    public static final BitSet FOLLOW_property_in_classProperties842 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_extended_property_in_classProperties848 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_internal_in_classProperties854 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_superName_in_classLineageEntry875 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_STRINGLITERAL_in_classLineageEntry877 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ALLOW_in_classPropertyDetail893 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_onOff_in_classPropertyDetail895 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_OVERRIDE_in_classPropertyDetail907 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_onOff_in_classPropertyDetail909 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DEFAULT_in_classPropertyDetail918 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_onOff_in_classPropertyDetail920 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PROPERTY_in_compound_property940 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_propertyList_in_compound_property942 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXTENDED_in_extended_property958 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_propertyList_in_extended_property960 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PROPERTY_in_property972 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_property974 = new BitSet(new long[]{0x0000000000000000L,0x0180000000000000L,0x0000000000000040L,0x0000000000034800L});
    public static final BitSet FOLLOW_literal_in_property976 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_property_in_propertyList988 = new BitSet(new long[]{0x0000000000000002L,0x0020000000000000L});
    public static final BitSet FOLLOW_PROP_INTERNAL_in_internal1002 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_booleanLiteral_in_internal1004 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_expression_in_statement1030 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_localVariableDeclaration_in_statement1036 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_constantDeclaration_in_statement1042 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_exitStatment_in_statement1049 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_continueStatment_in_statement1055 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_postStatement_in_statement1061 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_raiseStatement_in_statement1067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_returnStatement_in_statement1073 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_whileDoStatement_in_statement1079 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_forStatement_in_statement1085 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_caseStatement_in_statement1091 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_eventLoopStatement_in_statement1097 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_eventCaseStatement_in_statement1105 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ifStatement_in_statement1111 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_sqlStatement_in_statement1117 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_block_in_statement1123 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_raiseStatement_in_statement1129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_startTask_in_statement1135 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_sqlStatement0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FOR_in_forStatement1179 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_statement_in_forStatement1191 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_qualifiedName_in_forCountControlled1212 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_expression_in_forCountControlled1214 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_expression_in_forCountControlled1216 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_expression_in_forCountControlled1220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_qualifiedName_in_forEach1235 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_expression_in_forEach1237 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_localVariableDeclaration_in_forSQL1252 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000080000000000L});
    public static final BitSet FOLLOW_SQL_DO_in_forSQL1254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_EXIT_in_exitStatment1268 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_in_exitStatment1270 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CONTINUE_in_continueStatment1283 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_label_in_continueStatment1285 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_RETURN_in_returnStatement1298 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_returnStatement1300 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CASE_in_caseStatement1313 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_caseStatement1315 = new BitSet(new long[]{0x0004000000000008L,0x0000000000000000L,0x0000200000000000L});
    public static final BitSet FOLLOW_whenCase_in_caseStatement1317 = new BitSet(new long[]{0x0004000000000008L,0x0000000000000000L,0x0000200000000000L});
    public static final BitSet FOLLOW_elseDO_in_caseStatement1320 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_WHILE_in_whileDoStatement1334 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_whileDoStatement1337 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_statement_in_whileDoStatement1340 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_IF_in_ifStatement1355 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_ifStatement1357 = new BitSet(new long[]{0x800141EC80040000L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_statement_in_ifStatement1359 = new BitSet(new long[]{0x800141EC80040000L,0x0000000000000000L,0x000000EF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_ELSEIF_in_ifStatement1363 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_ifStatement1365 = new BitSet(new long[]{0x800141EC80040000L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_statement_in_ifStatement1367 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_RAISE_in_raiseStatement1382 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_raiseStatement1384 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_POST_in_postStatement1398 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_postStatement1400 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EVENT_LOOP_in_eventLoopStatement1412 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_preregisterStatement_in_eventLoopStatement1414 = new BitSet(new long[]{0x0002800000000008L,0x0000000000000000L,0x0000040000000000L});
    public static final BitSet FOLLOW_postregisterStatement_in_eventLoopStatement1417 = new BitSet(new long[]{0x0002800000000008L});
    public static final BitSet FOLLOW_whenEvent_in_eventLoopStatement1420 = new BitSet(new long[]{0x0002800000000008L});
    public static final BitSet FOLLOW_label_in_eventLoopStatement1423 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EVENT_CASE_in_eventCaseStatement1438 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_preregisterStatement_in_eventCaseStatement1440 = new BitSet(new long[]{0x0002800000000008L,0x0000000000000000L,0x0000040000000000L});
    public static final BitSet FOLLOW_postregisterStatement_in_eventCaseStatement1443 = new BitSet(new long[]{0x0002800000000008L});
    public static final BitSet FOLLOW_whenEvent_in_eventCaseStatement1446 = new BitSet(new long[]{0x0002800000000008L});
    public static final BitSet FOLLOW_label_in_eventCaseStatement1449 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PREREGISTER_in_preregisterStatement1464 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_registerStatement_in_preregisterStatement1466 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000080000000000L});
    public static final BitSet FOLLOW_POSTREGISTER_in_postregisterStatement1480 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_registerStatement_in_postregisterStatement1482 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000080000000000L});
    public static final BitSet FOLLOW_REGISTER_in_registerStatement1497 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_registerStatement1499 = new BitSet(new long[]{0x0000000000008008L});
    public static final BitSet FOLLOW_arguments_in_registerStatement1501 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_START_TASK_in_startTask1517 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_startTask1519 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000000000100000L});
    public static final BitSet FOLLOW_completion_in_startTask1522 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_COMPLETION_in_completion1539 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_set_in_completion1541 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TRANSACTION_in_completion1557 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_transType_in_completion1559 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_WHEN_EXCEPTION_in_whenException1578 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_whenException1580 = new BitSet(new long[]{0x4C00000000000000L,0x0000000000000000L,0x0000000000000008L,0xFA00000000000100L,0x0000000000000323L});
    public static final BitSet FOLLOW_type_in_whenException1582 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_statement_in_whenException1584 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_WHEN_CASE_in_whenCase1598 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_whenCase1600 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_statement_in_whenCase1602 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_WHEN_EVENT_in_whenEvent1618 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_whenEvent1620 = new BitSet(new long[]{0x800141EC80050008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_eventArguments_in_whenEvent1622 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_statement_in_whenEvent1625 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_EXCEPTION_in_exceptionBlock1641 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_whenException_in_exceptionBlock1643 = new BitSet(new long[]{0x0008000000000008L,0x0000000000000000L,0x0000200000000000L});
    public static final BitSet FOLLOW_elseDO_in_exceptionBlock1646 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ELSE_in_elseDO1667 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_statement_in_elseDO1669 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86200000L,0x0000080000040000L});
    public static final BitSet FOLLOW_RETURN_in_methodReturnDeclaration1685 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_in_methodReturnDeclaration1687 = new BitSet(new long[]{0x0000000000000008L,0x0000000000000000L,0x0000400000000000L});
    public static final BitSet FOLLOW_COPY_in_methodReturnDeclaration1689 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_formalParameterDecls_in_formalParameters1709 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_normalParameterDecl_in_formalParameterDecls1730 = new BitSet(new long[]{0x0000100000000002L});
    public static final BitSet FOLLOW_PARAMETER_in_normalParameterDecl1753 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_paramName_in_normalParameterDecl1755 = new BitSet(new long[]{0x4C00000000000000L,0x0000000000000000L,0x0000000000000008L,0xFA00000000000100L,0x0000000000000323L});
    public static final BitSet FOLLOW_type_in_normalParameterDecl1757 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0001C00000000000L});
    public static final BitSet FOLLOW_paramModifiers_in_normalParameterDecl1759 = new BitSet(new long[]{0x0000000000040008L});
    public static final BitSet FOLLOW_expression_in_normalParameterDecl1761 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_name_in_paramName1778 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_primitiveType_in_paramName1784 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_COPY_in_paramModifiers1801 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0001800000000000L});
    public static final BitSet FOLLOW_INPUT_in_paramModifiers1811 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0001000000000000L});
    public static final BitSet FOLLOW_OUTPUT_in_paramModifiers1813 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_INPUT_in_paramModifiers1823 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_OUTPUT_in_paramModifiers1834 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LOCAL_DECLARATION_in_localVariableDeclaration1856 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_localVariableDeclaration1858 = new BitSet(new long[]{0x4C00000000000000L,0x0000800000000000L,0x0000000000000008L,0xFA00000000000100L,0x0000000000000323L});
    public static final BitSet FOLLOW_type_in_localVariableDeclaration1861 = new BitSet(new long[]{0x0000000000040008L});
    public static final BitSet FOLLOW_expression_in_localVariableDeclaration1863 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LABEL_in_label1882 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_label1884 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BLOCK_in_block1904 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_TRANSACTION_in_block1907 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86600000L,0x0001C80000040000L});
    public static final BitSet FOLLOW_transType_in_block1909 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86600000L,0x0000080000040000L});
    public static final BitSet FOLLOW_statement_in_block1916 = new BitSet(new long[]{0x800141EC80040008L,0x0000000000000000L,0x000000CF86600000L,0x0000080000040000L});
    public static final BitSet FOLLOW_exceptionBlock_in_block1921 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PARENTESIZED_EXPR_in_parenthesizedExpression1943 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_parenthesizedExpression1945 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EXPR_in_expression1970 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expression1972 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_EQ_in_expr1997 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr1999 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2001 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BIT_OR_in_expr2013 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2015 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2017 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BIT_XOR_in_expr2029 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2031 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2033 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_BIT_AND_in_expr2045 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2047 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2049 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2051 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_OR_in_expr2063 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2065 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2067 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_XOR_in_expr2079 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2081 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2083 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_AND_in_expr2095 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2097 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2099 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NOT_EQUAL_in_expr2111 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2113 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2115 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LTEQ_in_expr2127 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2129 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2131 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_GTEQ_in_expr2143 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2145 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2147 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_GT_in_expr2159 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2161 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2163 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_LT_in_expr2175 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2177 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2179 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_PLUS_in_expr2191 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2193 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2195 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MINUS_in_expr2207 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2209 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2211 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MULT_in_expr2223 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2225 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2227 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_DIV_in_expr2239 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2241 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2243 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_MOD_in_expr2255 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2257 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2259 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_UNARY_PLUS_in_expr2271 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2273 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_UNARY_MINUS_in_expr2285 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2287 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_NOT_in_expr2299 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expr_in_expr2301 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_CAST_EXPR_in_expr2313 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_type_in_expr2315 = new BitSet(new long[]{0x0380000026004000L,0x01C0800000000000L,0xFFFC000000000460L,0x0000100000034837L});
    public static final BitSet FOLLOW_expr_in_expr2317 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_primaryExpression_in_expr2328 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_DOT_in_primaryExpression2350 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_primaryExpression_in_primaryExpression2368 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000200000000000L});
    public static final BitSet FOLLOW_IDENTIDENTIFIER_in_primaryExpression2390 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_parenthesizedExpression_in_primaryExpression2439 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_primaryExpression2446 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_METHOD_CALL_in_primaryExpression2455 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_primaryExpression_in_primaryExpression2457 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_arguments_in_primaryExpression2459 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ARRAY_INDEX_in_primaryExpression2468 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_primaryExpression_in_primaryExpression2471 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_expression_in_primaryExpression2473 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_literal_in_primaryExpression2481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_newExpression_in_primaryExpression2489 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_reservedPrefix_in_primaryExpression2497 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_CLASS_CONSTRUCTOR_CALL_in_newExpression2519 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_arguments_in_newExpression2521 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ARGUMENT_LIST_in_arguments2538 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_argumentList_in_arguments2540 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ARGUMENT_LIST_EVENT_in_eventArguments2555 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_argumentEventList_in_eventArguments2557 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_argument_in_argumentList2572 = new BitSet(new long[]{0x0000000000020002L});
    public static final BitSet FOLLOW_argumentEvent_in_argumentEventList2585 = new BitSet(new long[]{0x0000000000020002L});
    public static final BitSet FOLLOW_ARGUMENT_in_argument2600 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_expression_in_argument2602 = new BitSet(new long[]{0x0000000000000008L,0x0000800000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_name_in_argument2604 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ARGUMENT_in_argumentEvent2619 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_evParamName_in_argumentEvent2621 = new BitSet(new long[]{0x0000000000000008L,0x0000800000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_name_in_argumentEvent2623 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_evParamName0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_modifier0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_simpleType_in_type2726 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_objectType_in_type2736 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_arrayType_in_type2745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_pointerType_in_type2755 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cType_in_type2764 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TYPE_in_simpleType2788 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_qualifiedPrimative_in_simpleType2790 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_TYPE_in_objectType2817 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_qualifiedType_in_objectType2819 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_QUALIFIED_TYPE_IDENT_in_qualifiedType2842 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_typeIdent_in_qualifiedType2844 = new BitSet(new long[]{0x0000000000000008L,0x0000800000000000L,0x0000000000000000L,0x0010000000000000L,0x000007FFFFFFFC00L});
    public static final BitSet FOLLOW_IDENTIFIER_in_typeIdent2867 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_systemProject_in_typeIdent2877 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_name_in_qualifiedName2898 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_QUALIFIED_NAME_in_qualifiedName2909 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_qualifiedName_in_qualifiedName2911 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_name_in_qualifiedName2913 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_reservedPrefix0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ARRAY_TYPE_in_arrayType2966 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_qualifiedType_in_arrayType2968 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_ARRAY_CSTYLE_in_arrayDeclarator2988 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_INTLITERAL_in_arrayDeclarator2990 = new BitSet(new long[]{0x0000000000000000L,0x0080000000000000L});
    public static final BitSet FOLLOW_INTLITERAL_in_arrayDeclarator2992 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_POINTER_TYPE_in_pointerType3012 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_simpleType_in_pointerType3014 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_primitiveType_in_qualifiedPrimative3027 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_transType0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_248_in_primitiveType3067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_249_in_primitiveType3077 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_250_in_primitiveType3087 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_251_in_primitiveType3097 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_252_in_primitiveType3107 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_253_in_primitiveType3117 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_254_in_primitiveType3126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_255_in_primitiveType3136 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_256_in_primitiveType3146 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_257_in_primitiveType3156 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_258_in_primitiveType3166 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_259_in_primitiveType3176 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_260_in_primitiveType3186 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_261_in_primitiveType3196 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_262_in_primitiveType3206 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_263_in_primitiveType3216 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_array_in_primitiveType3226 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_251_in_cType3242 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_255_in_cType3248 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_257_in_cType3254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_256_in_cType3260 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_252_in_cType3266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_253_in_cType3272 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_264_in_cType3278 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_261_in_cType3284 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_249_in_cType3290 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_265_in_cType3296 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_254_in_cType3302 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cStruct_in_cType3308 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cEnum_in_cType3314 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_STRUCT_in_cStruct3327 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_cStruct3329 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_IDENTIFIER_in_cStruct3332 = new BitSet(new long[]{0x4C00000000000000L,0x0000000000000000L,0x0000000000000008L,0xFA00000000000100L,0x0000000000000323L});
    public static final BitSet FOLLOW_cType_in_cStruct3334 = new BitSet(new long[]{0x0000000000000008L,0x0000800000000000L});
    public static final BitSet FOLLOW_ENUM_in_cEnum3349 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_cEnum3351 = new BitSet(new long[]{0x0000000000000000L,0x0000800000000000L});
    public static final BitSet FOLLOW_IDENTIFIER_in_cEnum3354 = new BitSet(new long[]{0x0000000000000008L,0x0180800000000000L,0x0000000000000040L,0x0000000000034800L});
    public static final BitSet FOLLOW_literal_in_cEnum3356 = new BitSet(new long[]{0x0000000000000008L,0x0000800000000000L});
    public static final BitSet FOLLOW_TYPEDEF_in_cTypeDef3374 = new BitSet(new long[]{0x0000000000000004L});
    public static final BitSet FOLLOW_IDENTIFIER_in_cTypeDef3376 = new BitSet(new long[]{0x4C00000000000000L,0x0000000000000000L,0x0000000000000008L,0xFA00000000000100L,0x0000000000000323L});
    public static final BitSet FOLLOW_cType_in_cTypeDef3378 = new BitSet(new long[]{0x0000000000000008L});
    public static final BitSet FOLLOW_set_in_array3393 = new BitSet(new long[]{0x0020000000000002L});
    public static final BitSet FOLLOW_arrayDeclarator_in_array3404 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_userProject3420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_systemProject0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_230_in_name3719 = new BitSet(new long[]{0x0000000000000000L,0xD43D400000000000L,0x0017FFFFBFED1CCEL,0x000000000000FF7CL});
    public static final BitSet FOLLOW_reservedWord_in_name3721 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000000L,0x0000000000000000L,0x0000004000000000L});
    public static final BitSet FOLLOW_230_in_name3723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENTIFIER_in_name3730 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_reservedWord0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_literal0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_booleanLiteral0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_formalParameters_in_synpred22_ForteCDFTree532 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_formalParameters_in_synpred27_ForteCDFTree605 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_raiseStatement_in_synpred54_ForteCDFTree1067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_raiseStatement_in_synpred64_ForteCDFTree1129 = new BitSet(new long[]{0x0000000000000002L});

}
TOP

Related Classes of tool.model.grammar.ForteCDFTree$DFA35

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.