package uce.parser;

// $ANTLR 3.2 Sep 23, 2009 12:02:23 /media/Personal Documents/MS Project/Project Cogito/CG/CG.g 2010-02-09 21:57:52

import org.antlr.runtime.*;

import org.antlr.runtime.tree.*;

public class CGParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "OP", "STATEMENT", "SIMPLEAP", "COMPAP", "SUBUAP", "OAP", "OAXP", "OVP", "OVCP", "OVHSP", "OC", "CP", "COND", "ALLOC", "SPECOC", "TIME", "T_ISNT", "NORMAL", "CONDAP", "EXT", "ACTION", "T_BY", "T_TO", "T_EQUALS", "T_IS", "T_PART", "T_EQUALTO", "PASS", "IF", "SPACE", "THEN", "NEWLINE", "DOESFOLLOWING", "TILL", "FOR", "AMOUNTOFTIME", "INTO", "FROM", "NUMBER", "ALPHANUM", "ALL", "SPECIFIC", "OF", "HAVING", "BY", "TO", "AND", "OR", "ISNOT", "IS", "EQUALS", "ISPARTOF", "NOTEQUALS", "AS", "ASPARTOF", "ON", "'end'"
    };
    public static final int T_BY=25;
    public static final int ISPARTOF=55;
    public static final int OVP=11;
    public static final int AMOUNTOFTIME=39;
    public static final int FOR=38;
    public static final int EQUALS=54;
    public static final int AND=50;
    public static final int EOF=-1;
    public static final int T__60=60;
    public static final int SPACE=33;
    public static final int DOESFOLLOWING=36;
    public static final int STATEMENT=5;
    public static final int ACTION=24;
    public static final int PASS=31;
    public static final int IF=32;
    public static final int SPECOC=18;
    public static final int AS=57;
    public static final int TIME=19;
    public static final int THEN=34;
    public static final int IS=53;
    public static final int T_EQUALS=27;
    public static final int ALL=44;
    public static final int NORMAL=21;
    public static final int INTO=40;
    public static final int T_PART=29;
    public static final int BY=48;
    public static final int OVCP=12;
    public static final int OAP=9;
    public static final int T_TO=26;
    public static final int TO=49;
    public static final int NUMBER=42;
    public static final int T_EQUALTO=30;
    public static final int ON=59;
    public static final int NOTEQUALS=56;
    public static final int HAVING=47;
    public static final int OF=46;
    public static final int OC=14;
    public static final int CONDAP=22;
    public static final int T_IS=28;
    public static final int ALPHANUM=43;
    public static final int TILL=37;
    public static final int OVHSP=13;
    public static final int SUBUAP=8;
    public static final int NEWLINE=35;
    public static final int SPECIFIC=45;
    public static final int ASPARTOF=58;
    public static final int OP=4;
    public static final int EXT=23;
    public static final int OR=51;
    public static final int ALLOC=17;
    public static final int OAXP=10;
    public static final int ISNOT=52;
    public static final int COMPAP=7;
    public static final int FROM=41;
    public static final int COND=16;
    public static final int T_ISNT=20;
    public static final int CP=15;
    public static final int SIMPLEAP=6;

    // delegates
    // delegators


        public CGParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public CGParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        
    protected TreeAdaptor adaptor = new CommonTreeAdaptor();

    public void setTreeAdaptor(TreeAdaptor adaptor) {
        this.adaptor = adaptor;
    }
    public TreeAdaptor getTreeAdaptor() {
        return adaptor;
    }

    public String[] getTokenNames() { return CGParser.tokenNames; }
    public String getGrammarFileName() { return "/media/Personal Documents/MS Project/Project Cogito/CG/CG.g"; }


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

    // $ANTLR start "statement"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:39:1: statement : ( uAP | cP ( substat )+ 'end' -> ^( CP cP ( substat )+ ) );
    public final CGParser.statement_return statement() throws RecognitionException {
        CGParser.statement_return retval = new CGParser.statement_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token string_literal4=null;
        CGParser.uAP_return uAP1 = null;

        CGParser.cP_return cP2 = null;

        CGParser.substat_return substat3 = null;


        Object string_literal4_tree=null;
        RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60");
        RewriteRuleSubtreeStream stream_cP=new RewriteRuleSubtreeStream(adaptor,"rule cP");
        RewriteRuleSubtreeStream stream_substat=new RewriteRuleSubtreeStream(adaptor,"rule substat");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:39:10: ( uAP | cP ( substat )+ 'end' -> ^( CP cP ( substat )+ ) )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==ALPHANUM) ) {
                alt2=1;
            }
            else if ( (LA2_0==IF) ) {
                alt2=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:40:2: uAP
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_uAP_in_statement145);
                    uAP1=uAP();

                    state._fsp--;

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

                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:41:4: cP ( substat )+ 'end'
                    {
                    pushFollow(FOLLOW_cP_in_statement151);
                    cP2=cP();

                    state._fsp--;

                    stream_cP.add(cP2.getTree());
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:41:7: ( substat )+
                    int cnt1=0;
                    loop1:
                    do {
                        int alt1=2;
                        int LA1_0 = input.LA(1);

                        if ( (LA1_0==ALPHANUM) ) {
                            alt1=1;
                        }


                        switch (alt1) {
                    	case 1 :
                    	    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:41:7: substat
                    	    {
                    	    pushFollow(FOLLOW_substat_in_statement153);
                    	    substat3=substat();

                    	    state._fsp--;

                    	    stream_substat.add(substat3.getTree());

                    	    }
                    	    break;

                    	default :
                    	    if ( cnt1 >= 1 ) break loop1;
                                EarlyExitException eee =
                                    new EarlyExitException(1, input);
                                throw eee;
                        }
                        cnt1++;
                    } while (true);

                    string_literal4=(Token)match(input,60,FOLLOW_60_in_statement156);  
                    stream_60.add(string_literal4);



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

                    root_0 = (Object)adaptor.nil();
                    // 41:22: -> ^( CP cP ( substat )+ )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:41:25: ^( CP cP ( substat )+ )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(CP, "CP"), root_1);

                        adaptor.addChild(root_1, stream_cP.nextTree());
                        if ( !(stream_substat.hasNext()) ) {
                            throw new RewriteEarlyExitException();
                        }
                        while ( stream_substat.hasNext() ) {
                            adaptor.addChild(root_1, stream_substat.nextTree());

                        }
                        stream_substat.reset();

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "statement");
            		else 
            			ex.append("rule", ",statement");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "statement"

    public static class cP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "cP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:59:1: cP : IF SPACE oVCP SPACE THEN NEWLINE -> oVCP ;
    public final CGParser.cP_return cP() throws RecognitionException {
        CGParser.cP_return retval = new CGParser.cP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token IF5=null;
        Token SPACE6=null;
        Token SPACE8=null;
        Token THEN9=null;
        Token NEWLINE10=null;
        CGParser.oVCP_return oVCP7 = null;


        Object IF5_tree=null;
        Object SPACE6_tree=null;
        Object SPACE8_tree=null;
        Object THEN9_tree=null;
        Object NEWLINE10_tree=null;
        RewriteRuleTokenStream stream_THEN=new RewriteRuleTokenStream(adaptor,"token THEN");
        RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_IF=new RewriteRuleTokenStream(adaptor,"token IF");
        RewriteRuleSubtreeStream stream_oVCP=new RewriteRuleSubtreeStream(adaptor,"rule oVCP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:59:4: ( IF SPACE oVCP SPACE THEN NEWLINE -> oVCP )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:59:6: IF SPACE oVCP SPACE THEN NEWLINE
            {
            IF5=(Token)match(input,IF,FOLLOW_IF_in_cP184);  
            stream_IF.add(IF5);

            SPACE6=(Token)match(input,SPACE,FOLLOW_SPACE_in_cP186);  
            stream_SPACE.add(SPACE6);

            pushFollow(FOLLOW_oVCP_in_cP188);
            oVCP7=oVCP();

            state._fsp--;

            stream_oVCP.add(oVCP7.getTree());
            SPACE8=(Token)match(input,SPACE,FOLLOW_SPACE_in_cP190);  
            stream_SPACE.add(SPACE8);

            THEN9=(Token)match(input,THEN,FOLLOW_THEN_in_cP192);  
            stream_THEN.add(THEN9);

            NEWLINE10=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_cP194);  
            stream_NEWLINE.add(NEWLINE10);



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

            root_0 = (Object)adaptor.nil();
            // 59:39: -> oVCP
            {
                adaptor.addChild(root_0, stream_oVCP.nextTree());

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "cP");
            		else 
            			ex.append("rule", ",cP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "cP"

    public static class substat_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "substat"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:77:1: substat : uAP NEWLINE -> uAP ;
    public final CGParser.substat_return substat() throws RecognitionException {
        CGParser.substat_return retval = new CGParser.substat_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token NEWLINE12=null;
        CGParser.uAP_return uAP11 = null;


        Object NEWLINE12_tree=null;
        RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE");
        RewriteRuleSubtreeStream stream_uAP=new RewriteRuleSubtreeStream(adaptor,"rule uAP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:77:8: ( uAP NEWLINE -> uAP )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:77:10: uAP NEWLINE
            {
            pushFollow(FOLLOW_uAP_in_substat216);
            uAP11=uAP();

            state._fsp--;

            stream_uAP.add(uAP11.getTree());
            NEWLINE12=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_substat218);  
            stream_NEWLINE.add(NEWLINE12);



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

            root_0 = (Object)adaptor.nil();
            // 77:22: -> uAP
            {
                adaptor.addChild(root_0, stream_uAP.nextTree());

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "substat");
            		else 
            			ex.append("rule", ",substat");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "substat"

    public static class uAP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "uAP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:96:1: uAP : ( simpleUAP -> ^( SIMPLEAP simpleUAP ) | compUAP -> ^( COMPAP compUAP ) );
    public final CGParser.uAP_return uAP() throws RecognitionException {
        CGParser.uAP_return retval = new CGParser.uAP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        CGParser.simpleUAP_return simpleUAP13 = null;

        CGParser.compUAP_return compUAP14 = null;


        RewriteRuleSubtreeStream stream_simpleUAP=new RewriteRuleSubtreeStream(adaptor,"rule simpleUAP");
        RewriteRuleSubtreeStream stream_compUAP=new RewriteRuleSubtreeStream(adaptor,"rule compUAP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:96:5: ( simpleUAP -> ^( SIMPLEAP simpleUAP ) | compUAP -> ^( COMPAP compUAP ) )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==ALPHANUM) ) {
                int LA3_1 = input.LA(2);

                if ( (LA3_1==SPACE) ) {
                    int LA3_2 = input.LA(3);

                    if ( (LA3_2==DOESFOLLOWING) ) {
                        alt3=2;
                    }
                    else if ( (LA3_2==ALPHANUM) ) {
                        alt3=1;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 3, 2, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 3, 1, input);

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

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:96:7: simpleUAP
                    {
                    pushFollow(FOLLOW_simpleUAP_in_uAP241);
                    simpleUAP13=simpleUAP();

                    state._fsp--;

                    stream_simpleUAP.add(simpleUAP13.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 96:17: -> ^( SIMPLEAP simpleUAP )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:96:20: ^( SIMPLEAP simpleUAP )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SIMPLEAP, "SIMPLEAP"), root_1);

                        adaptor.addChild(root_1, stream_simpleUAP.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:97:4: compUAP
                    {
                    pushFollow(FOLLOW_compUAP_in_uAP254);
                    compUAP14=compUAP();

                    state._fsp--;

                    stream_compUAP.add(compUAP14.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 97:13: -> ^( COMPAP compUAP )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:97:16: ^( COMPAP compUAP )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COMPAP, "COMPAP"), root_1);

                        adaptor.addChild(root_1, stream_compUAP.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "uAP");
            		else 
            			ex.append("rule", ",uAP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "uAP"

    public static class compUAP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "compUAP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:116:1: compUAP : act SPACE DOESFOLLOWING ( subUAP )+ 'end' -> act ( subUAP )+ ;
    public final CGParser.compUAP_return compUAP() throws RecognitionException {
        CGParser.compUAP_return retval = new CGParser.compUAP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE16=null;
        Token DOESFOLLOWING17=null;
        Token string_literal19=null;
        CGParser.act_return act15 = null;

        CGParser.subUAP_return subUAP18 = null;


        Object SPACE16_tree=null;
        Object DOESFOLLOWING17_tree=null;
        Object string_literal19_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_DOESFOLLOWING=new RewriteRuleTokenStream(adaptor,"token DOESFOLLOWING");
        RewriteRuleTokenStream stream_60=new RewriteRuleTokenStream(adaptor,"token 60");
        RewriteRuleSubtreeStream stream_subUAP=new RewriteRuleSubtreeStream(adaptor,"rule subUAP");
        RewriteRuleSubtreeStream stream_act=new RewriteRuleSubtreeStream(adaptor,"rule act");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:116:9: ( act SPACE DOESFOLLOWING ( subUAP )+ 'end' -> act ( subUAP )+ )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:116:11: act SPACE DOESFOLLOWING ( subUAP )+ 'end'
            {
            pushFollow(FOLLOW_act_in_compUAP281);
            act15=act();

            state._fsp--;

            stream_act.add(act15.getTree());
            SPACE16=(Token)match(input,SPACE,FOLLOW_SPACE_in_compUAP283);  
            stream_SPACE.add(SPACE16);

            DOESFOLLOWING17=(Token)match(input,DOESFOLLOWING,FOLLOW_DOESFOLLOWING_in_compUAP285);  
            stream_DOESFOLLOWING.add(DOESFOLLOWING17);

            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:116:35: ( subUAP )+
            int cnt4=0;
            loop4:
            do {
                int alt4=2;
                int LA4_0 = input.LA(1);

                if ( (LA4_0==ALPHANUM) ) {
                    alt4=1;
                }


                switch (alt4) {
            	case 1 :
            	    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:116:35: subUAP
            	    {
            	    pushFollow(FOLLOW_subUAP_in_compUAP287);
            	    subUAP18=subUAP();

            	    state._fsp--;

            	    stream_subUAP.add(subUAP18.getTree());

            	    }
            	    break;

            	default :
            	    if ( cnt4 >= 1 ) break loop4;
                        EarlyExitException eee =
                            new EarlyExitException(4, input);
                        throw eee;
                }
                cnt4++;
            } while (true);

            string_literal19=(Token)match(input,60,FOLLOW_60_in_compUAP290);  
            stream_60.add(string_literal19);



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

            root_0 = (Object)adaptor.nil();
            // 116:49: -> act ( subUAP )+
            {
                adaptor.addChild(root_0, stream_act.nextTree());
                if ( !(stream_subUAP.hasNext()) ) {
                    throw new RewriteEarlyExitException();
                }
                while ( stream_subUAP.hasNext() ) {
                    adaptor.addChild(root_0, stream_subUAP.nextTree());

                }
                stream_subUAP.reset();

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "compUAP");
            		else 
            			ex.append("rule", ",compUAP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "compUAP"

    public static class subUAP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "subUAP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:134:1: subUAP : action NEWLINE -> ^( ACTION action ) ;
    public final CGParser.subUAP_return subUAP() throws RecognitionException {
        CGParser.subUAP_return retval = new CGParser.subUAP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token NEWLINE21=null;
        CGParser.action_return action20 = null;


        Object NEWLINE21_tree=null;
        RewriteRuleTokenStream stream_NEWLINE=new RewriteRuleTokenStream(adaptor,"token NEWLINE");
        RewriteRuleSubtreeStream stream_action=new RewriteRuleSubtreeStream(adaptor,"rule action");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:134:8: ( action NEWLINE -> ^( ACTION action ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:134:10: action NEWLINE
            {
            pushFollow(FOLLOW_action_in_subUAP315);
            action20=action();

            state._fsp--;

            stream_action.add(action20.getTree());
            NEWLINE21=(Token)match(input,NEWLINE,FOLLOW_NEWLINE_in_subUAP317);  
            stream_NEWLINE.add(NEWLINE21);



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

            root_0 = (Object)adaptor.nil();
            // 134:26: -> ^( ACTION action )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:134:30: ^( ACTION action )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ACTION, "ACTION"), root_1);

                adaptor.addChild(root_1, stream_action.nextTree());

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "subUAP");
            		else 
            			ex.append("rule", ",subUAP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "subUAP"

    public static class act_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "act"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:153:1: act : oC ;
    public final CGParser.act_return act() throws RecognitionException {
        CGParser.act_return retval = new CGParser.act_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        CGParser.oC_return oC22 = null;



        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:153:5: ( oC )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:153:7: oC
            {
            root_0 = (Object)adaptor.nil();

            pushFollow(FOLLOW_oC_in_act346);
            oC22=oC();

            state._fsp--;

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

            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "act");
            		else 
            			ex.append("rule", ",act");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "act"

    public static class simpleUAP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "simpleUAP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:172:1: simpleUAP : act SPACE action -> act action ;
    public final CGParser.simpleUAP_return simpleUAP() throws RecognitionException {
        CGParser.simpleUAP_return retval = new CGParser.simpleUAP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE24=null;
        CGParser.act_return act23 = null;

        CGParser.action_return action25 = null;


        Object SPACE24_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleSubtreeStream stream_action=new RewriteRuleSubtreeStream(adaptor,"rule action");
        RewriteRuleSubtreeStream stream_act=new RewriteRuleSubtreeStream(adaptor,"rule act");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:173:2: ( act SPACE action -> act action )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:173:4: act SPACE action
            {
            pushFollow(FOLLOW_act_in_simpleUAP365);
            act23=act();

            state._fsp--;

            stream_act.add(act23.getTree());
            SPACE24=(Token)match(input,SPACE,FOLLOW_SPACE_in_simpleUAP367);  
            stream_SPACE.add(SPACE24);

            pushFollow(FOLLOW_action_in_simpleUAP369);
            action25=action();

            state._fsp--;

            stream_action.add(action25.getTree());


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

            root_0 = (Object)adaptor.nil();
            // 173:21: -> act action
            {
                adaptor.addChild(root_0, stream_act.nextTree());
                adaptor.addChild(root_0, stream_action.nextTree());

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "simpleUAP");
            		else 
            			ex.append("rule", ",simpleUAP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "simpleUAP"

    public static class wext_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "wext"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:191:1: wext : ( SPACE TILL SPACE oVCP -> ^( COND oVCP ) | SPACE FOR SPACE num SPACE AMOUNTOFTIME -> ^( TIME num AMOUNTOFTIME ) | SPACE ( INTO | FROM ) SPACE pseudoOP -> ^( PASS pseudoOP ) );
    public final CGParser.wext_return wext() throws RecognitionException {
        CGParser.wext_return retval = new CGParser.wext_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE26=null;
        Token TILL27=null;
        Token SPACE28=null;
        Token SPACE30=null;
        Token FOR31=null;
        Token SPACE32=null;
        Token SPACE34=null;
        Token AMOUNTOFTIME35=null;
        Token SPACE36=null;
        Token INTO37=null;
        Token FROM38=null;
        Token SPACE39=null;
        CGParser.oVCP_return oVCP29 = null;

        CGParser.num_return num33 = null;

        CGParser.pseudoOP_return pseudoOP40 = null;


        Object SPACE26_tree=null;
        Object TILL27_tree=null;
        Object SPACE28_tree=null;
        Object SPACE30_tree=null;
        Object FOR31_tree=null;
        Object SPACE32_tree=null;
        Object SPACE34_tree=null;
        Object AMOUNTOFTIME35_tree=null;
        Object SPACE36_tree=null;
        Object INTO37_tree=null;
        Object FROM38_tree=null;
        Object SPACE39_tree=null;
        RewriteRuleTokenStream stream_FOR=new RewriteRuleTokenStream(adaptor,"token FOR");
        RewriteRuleTokenStream stream_FROM=new RewriteRuleTokenStream(adaptor,"token FROM");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_INTO=new RewriteRuleTokenStream(adaptor,"token INTO");
        RewriteRuleTokenStream stream_AMOUNTOFTIME=new RewriteRuleTokenStream(adaptor,"token AMOUNTOFTIME");
        RewriteRuleTokenStream stream_TILL=new RewriteRuleTokenStream(adaptor,"token TILL");
        RewriteRuleSubtreeStream stream_pseudoOP=new RewriteRuleSubtreeStream(adaptor,"rule pseudoOP");
        RewriteRuleSubtreeStream stream_num=new RewriteRuleSubtreeStream(adaptor,"rule num");
        RewriteRuleSubtreeStream stream_oVCP=new RewriteRuleSubtreeStream(adaptor,"rule oVCP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:191:6: ( SPACE TILL SPACE oVCP -> ^( COND oVCP ) | SPACE FOR SPACE num SPACE AMOUNTOFTIME -> ^( TIME num AMOUNTOFTIME ) | SPACE ( INTO | FROM ) SPACE pseudoOP -> ^( PASS pseudoOP ) )
            int alt6=3;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==SPACE) ) {
                switch ( input.LA(2) ) {
                case TILL:
                    {
                    alt6=1;
                    }
                    break;
                case FOR:
                    {
                    alt6=2;
                    }
                    break;
                case INTO:
                case FROM:
                    {
                    alt6=3;
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 6, 1, input);

                    throw nvae;
                }

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

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:191:8: SPACE TILL SPACE oVCP
                    {
                    SPACE26=(Token)match(input,SPACE,FOLLOW_SPACE_in_wext392);  
                    stream_SPACE.add(SPACE26);

                    TILL27=(Token)match(input,TILL,FOLLOW_TILL_in_wext394);  
                    stream_TILL.add(TILL27);

                    SPACE28=(Token)match(input,SPACE,FOLLOW_SPACE_in_wext396);  
                    stream_SPACE.add(SPACE28);

                    pushFollow(FOLLOW_oVCP_in_wext398);
                    oVCP29=oVCP();

                    state._fsp--;

                    stream_oVCP.add(oVCP29.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 191:33: -> ^( COND oVCP )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:191:36: ^( COND oVCP )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COND, "COND"), root_1);

                        adaptor.addChild(root_1, stream_oVCP.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:193:5: SPACE FOR SPACE num SPACE AMOUNTOFTIME
                    {
                    SPACE30=(Token)match(input,SPACE,FOLLOW_SPACE_in_wext417);  
                    stream_SPACE.add(SPACE30);

                    FOR31=(Token)match(input,FOR,FOLLOW_FOR_in_wext419);  
                    stream_FOR.add(FOR31);

                    SPACE32=(Token)match(input,SPACE,FOLLOW_SPACE_in_wext421);  
                    stream_SPACE.add(SPACE32);

                    pushFollow(FOLLOW_num_in_wext423);
                    num33=num();

                    state._fsp--;

                    stream_num.add(num33.getTree());
                    SPACE34=(Token)match(input,SPACE,FOLLOW_SPACE_in_wext425);  
                    stream_SPACE.add(SPACE34);

                    AMOUNTOFTIME35=(Token)match(input,AMOUNTOFTIME,FOLLOW_AMOUNTOFTIME_in_wext427);  
                    stream_AMOUNTOFTIME.add(AMOUNTOFTIME35);



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

                    root_0 = (Object)adaptor.nil();
                    // 193:46: -> ^( TIME num AMOUNTOFTIME )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:193:49: ^( TIME num AMOUNTOFTIME )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TIME, "TIME"), root_1);

                        adaptor.addChild(root_1, stream_num.nextTree());
                        adaptor.addChild(root_1, stream_AMOUNTOFTIME.nextNode());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:195:4: SPACE ( INTO | FROM ) SPACE pseudoOP
                    {
                    SPACE36=(Token)match(input,SPACE,FOLLOW_SPACE_in_wext446);  
                    stream_SPACE.add(SPACE36);

                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:195:10: ( INTO | FROM )
                    int alt5=2;
                    int LA5_0 = input.LA(1);

                    if ( (LA5_0==INTO) ) {
                        alt5=1;
                    }
                    else if ( (LA5_0==FROM) ) {
                        alt5=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 5, 0, input);

                        throw nvae;
                    }
                    switch (alt5) {
                        case 1 :
                            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:195:11: INTO
                            {
                            INTO37=(Token)match(input,INTO,FOLLOW_INTO_in_wext449);  
                            stream_INTO.add(INTO37);


                            }
                            break;
                        case 2 :
                            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:195:16: FROM
                            {
                            FROM38=(Token)match(input,FROM,FOLLOW_FROM_in_wext451);  
                            stream_FROM.add(FROM38);


                            }
                            break;

                    }

                    SPACE39=(Token)match(input,SPACE,FOLLOW_SPACE_in_wext454);  
                    stream_SPACE.add(SPACE39);

                    pushFollow(FOLLOW_pseudoOP_in_wext456);
                    pseudoOP40=pseudoOP();

                    state._fsp--;

                    stream_pseudoOP.add(pseudoOP40.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 195:38: -> ^( PASS pseudoOP )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:195:41: ^( PASS pseudoOP )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PASS, "PASS"), root_1);

                        adaptor.addChild(root_1, stream_pseudoOP.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "wext");
            		else 
            			ex.append("rule", ",wext");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "wext"

    public static class ext_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "ext"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:214:1: ext : ( SPACE TILL SPACE oVCP -> ^( COND oVCP ) | SPACE FOR SPACE num SPACE AMOUNTOFTIME -> ^( TIME num AMOUNTOFTIME ) | SPACE ( INTO | FROM ) SPACE pseudoOP -> ^( PASS pseudoOP ) );
    public final CGParser.ext_return ext() throws RecognitionException {
        CGParser.ext_return retval = new CGParser.ext_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE41=null;
        Token TILL42=null;
        Token SPACE43=null;
        Token SPACE45=null;
        Token FOR46=null;
        Token SPACE47=null;
        Token SPACE49=null;
        Token AMOUNTOFTIME50=null;
        Token SPACE51=null;
        Token INTO52=null;
        Token FROM53=null;
        Token SPACE54=null;
        CGParser.oVCP_return oVCP44 = null;

        CGParser.num_return num48 = null;

        CGParser.pseudoOP_return pseudoOP55 = null;


        Object SPACE41_tree=null;
        Object TILL42_tree=null;
        Object SPACE43_tree=null;
        Object SPACE45_tree=null;
        Object FOR46_tree=null;
        Object SPACE47_tree=null;
        Object SPACE49_tree=null;
        Object AMOUNTOFTIME50_tree=null;
        Object SPACE51_tree=null;
        Object INTO52_tree=null;
        Object FROM53_tree=null;
        Object SPACE54_tree=null;
        RewriteRuleTokenStream stream_FOR=new RewriteRuleTokenStream(adaptor,"token FOR");
        RewriteRuleTokenStream stream_FROM=new RewriteRuleTokenStream(adaptor,"token FROM");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_INTO=new RewriteRuleTokenStream(adaptor,"token INTO");
        RewriteRuleTokenStream stream_AMOUNTOFTIME=new RewriteRuleTokenStream(adaptor,"token AMOUNTOFTIME");
        RewriteRuleTokenStream stream_TILL=new RewriteRuleTokenStream(adaptor,"token TILL");
        RewriteRuleSubtreeStream stream_pseudoOP=new RewriteRuleSubtreeStream(adaptor,"rule pseudoOP");
        RewriteRuleSubtreeStream stream_num=new RewriteRuleSubtreeStream(adaptor,"rule num");
        RewriteRuleSubtreeStream stream_oVCP=new RewriteRuleSubtreeStream(adaptor,"rule oVCP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:214:5: ( SPACE TILL SPACE oVCP -> ^( COND oVCP ) | SPACE FOR SPACE num SPACE AMOUNTOFTIME -> ^( TIME num AMOUNTOFTIME ) | SPACE ( INTO | FROM ) SPACE pseudoOP -> ^( PASS pseudoOP ) )
            int alt8=3;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==SPACE) ) {
                switch ( input.LA(2) ) {
                case TILL:
                    {
                    alt8=1;
                    }
                    break;
                case FOR:
                    {
                    alt8=2;
                    }
                    break;
                case INTO:
                case FROM:
                    {
                    alt8=3;
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("", 8, 1, input);

                    throw nvae;
                }

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

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:214:7: SPACE TILL SPACE oVCP
                    {
                    SPACE41=(Token)match(input,SPACE,FOLLOW_SPACE_in_ext483);  
                    stream_SPACE.add(SPACE41);

                    TILL42=(Token)match(input,TILL,FOLLOW_TILL_in_ext485);  
                    stream_TILL.add(TILL42);

                    SPACE43=(Token)match(input,SPACE,FOLLOW_SPACE_in_ext487);  
                    stream_SPACE.add(SPACE43);

                    pushFollow(FOLLOW_oVCP_in_ext489);
                    oVCP44=oVCP();

                    state._fsp--;

                    stream_oVCP.add(oVCP44.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 214:32: -> ^( COND oVCP )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:214:35: ^( COND oVCP )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(COND, "COND"), root_1);

                        adaptor.addChild(root_1, stream_oVCP.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:216:5: SPACE FOR SPACE num SPACE AMOUNTOFTIME
                    {
                    SPACE45=(Token)match(input,SPACE,FOLLOW_SPACE_in_ext508);  
                    stream_SPACE.add(SPACE45);

                    FOR46=(Token)match(input,FOR,FOLLOW_FOR_in_ext510);  
                    stream_FOR.add(FOR46);

                    SPACE47=(Token)match(input,SPACE,FOLLOW_SPACE_in_ext512);  
                    stream_SPACE.add(SPACE47);

                    pushFollow(FOLLOW_num_in_ext514);
                    num48=num();

                    state._fsp--;

                    stream_num.add(num48.getTree());
                    SPACE49=(Token)match(input,SPACE,FOLLOW_SPACE_in_ext516);  
                    stream_SPACE.add(SPACE49);

                    AMOUNTOFTIME50=(Token)match(input,AMOUNTOFTIME,FOLLOW_AMOUNTOFTIME_in_ext518);  
                    stream_AMOUNTOFTIME.add(AMOUNTOFTIME50);



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

                    root_0 = (Object)adaptor.nil();
                    // 216:46: -> ^( TIME num AMOUNTOFTIME )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:216:49: ^( TIME num AMOUNTOFTIME )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(TIME, "TIME"), root_1);

                        adaptor.addChild(root_1, stream_num.nextTree());
                        adaptor.addChild(root_1, stream_AMOUNTOFTIME.nextNode());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:218:4: SPACE ( INTO | FROM ) SPACE pseudoOP
                    {
                    SPACE51=(Token)match(input,SPACE,FOLLOW_SPACE_in_ext537);  
                    stream_SPACE.add(SPACE51);

                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:218:10: ( INTO | FROM )
                    int alt7=2;
                    int LA7_0 = input.LA(1);

                    if ( (LA7_0==INTO) ) {
                        alt7=1;
                    }
                    else if ( (LA7_0==FROM) ) {
                        alt7=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 7, 0, input);

                        throw nvae;
                    }
                    switch (alt7) {
                        case 1 :
                            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:218:11: INTO
                            {
                            INTO52=(Token)match(input,INTO,FOLLOW_INTO_in_ext540);  
                            stream_INTO.add(INTO52);


                            }
                            break;
                        case 2 :
                            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:218:16: FROM
                            {
                            FROM53=(Token)match(input,FROM,FOLLOW_FROM_in_ext542);  
                            stream_FROM.add(FROM53);


                            }
                            break;

                    }

                    SPACE54=(Token)match(input,SPACE,FOLLOW_SPACE_in_ext545);  
                    stream_SPACE.add(SPACE54);

                    pushFollow(FOLLOW_pseudoOP_in_ext547);
                    pseudoOP55=pseudoOP();

                    state._fsp--;

                    stream_pseudoOP.add(pseudoOP55.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 218:38: -> ^( PASS pseudoOP )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:218:41: ^( PASS pseudoOP )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(PASS, "PASS"), root_1);

                        adaptor.addChild(root_1, stream_pseudoOP.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "ext");
            		else 
            			ex.append("rule", ",ext");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "ext"

    public static class num_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "num"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:238:1: num : NUMBER ;
    public final CGParser.num_return num() throws RecognitionException {
        CGParser.num_return retval = new CGParser.num_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token NUMBER56=null;

        Object NUMBER56_tree=null;

        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:238:5: ( NUMBER )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:238:7: NUMBER
            {
            root_0 = (Object)adaptor.nil();

            NUMBER56=(Token)match(input,NUMBER,FOLLOW_NUMBER_in_num577); 
            NUMBER56_tree = (Object)adaptor.create(NUMBER56);
            adaptor.addChild(root_0, NUMBER56_tree);


            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "num");
            		else 
            			ex.append("rule", ",num");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "num"

    public static class action_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "action"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:257:1: action : ( uA ( ext )? -> uA ( ^( EXT ext ) )? | uA ( SPACE wOP ) ( ext )? -> uA ^( OP wOP ) ( ^( EXT ext ) )? | cxaction );
    public final CGParser.action_return action() throws RecognitionException {
        CGParser.action_return retval = new CGParser.action_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE60=null;
        CGParser.uA_return uA57 = null;

        CGParser.ext_return ext58 = null;

        CGParser.uA_return uA59 = null;

        CGParser.wOP_return wOP61 = null;

        CGParser.ext_return ext62 = null;

        CGParser.cxaction_return cxaction63 = null;


        Object SPACE60_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleSubtreeStream stream_uA=new RewriteRuleSubtreeStream(adaptor,"rule uA");
        RewriteRuleSubtreeStream stream_wOP=new RewriteRuleSubtreeStream(adaptor,"rule wOP");
        RewriteRuleSubtreeStream stream_ext=new RewriteRuleSubtreeStream(adaptor,"rule ext");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:257:8: ( uA ( ext )? -> uA ( ^( EXT ext ) )? | uA ( SPACE wOP ) ( ext )? -> uA ^( OP wOP ) ( ^( EXT ext ) )? | cxaction )
            int alt11=3;
            alt11 = dfa11.predict(input);
            switch (alt11) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:257:10: uA ( ext )?
                    {
                    pushFollow(FOLLOW_uA_in_action595);
                    uA57=uA();

                    state._fsp--;

                    stream_uA.add(uA57.getTree());
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:257:13: ( ext )?
                    int alt9=2;
                    int LA9_0 = input.LA(1);

                    if ( (LA9_0==SPACE) ) {
                        alt9=1;
                    }
                    switch (alt9) {
                        case 1 :
                            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:257:14: ext
                            {
                            pushFollow(FOLLOW_ext_in_action598);
                            ext58=ext();

                            state._fsp--;

                            stream_ext.add(ext58.getTree());

                            }
                            break;

                    }



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

                    root_0 = (Object)adaptor.nil();
                    // 257:22: -> uA ( ^( EXT ext ) )?
                    {
                        adaptor.addChild(root_0, stream_uA.nextTree());
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:257:28: ( ^( EXT ext ) )?
                        if ( stream_ext.hasNext() ) {
                            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:257:28: ^( EXT ext )
                            {
                            Object root_1 = (Object)adaptor.nil();
                            root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXT, "EXT"), root_1);

                            adaptor.addChild(root_1, stream_ext.nextTree());

                            adaptor.addChild(root_0, root_1);
                            }

                        }
                        stream_ext.reset();

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:259:4: uA ( SPACE wOP ) ( ext )?
                    {
                    pushFollow(FOLLOW_uA_in_action619);
                    uA59=uA();

                    state._fsp--;

                    stream_uA.add(uA59.getTree());
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:259:7: ( SPACE wOP )
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:259:8: SPACE wOP
                    {
                    SPACE60=(Token)match(input,SPACE,FOLLOW_SPACE_in_action622);  
                    stream_SPACE.add(SPACE60);

                    pushFollow(FOLLOW_wOP_in_action624);
                    wOP61=wOP();

                    state._fsp--;

                    stream_wOP.add(wOP61.getTree());

                    }

                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:259:19: ( ext )?
                    int alt10=2;
                    int LA10_0 = input.LA(1);

                    if ( (LA10_0==SPACE) ) {
                        alt10=1;
                    }
                    switch (alt10) {
                        case 1 :
                            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:259:20: ext
                            {
                            pushFollow(FOLLOW_ext_in_action628);
                            ext62=ext();

                            state._fsp--;

                            stream_ext.add(ext62.getTree());

                            }
                            break;

                    }



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

                    root_0 = (Object)adaptor.nil();
                    // 259:27: -> uA ^( OP wOP ) ( ^( EXT ext ) )?
                    {
                        adaptor.addChild(root_0, stream_uA.nextTree());
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:259:33: ^( OP wOP )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OP, "OP"), root_1);

                        adaptor.addChild(root_1, stream_wOP.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:259:43: ( ^( EXT ext ) )?
                        if ( stream_ext.hasNext() ) {
                            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:259:43: ^( EXT ext )
                            {
                            Object root_1 = (Object)adaptor.nil();
                            root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXT, "EXT"), root_1);

                            adaptor.addChild(root_1, stream_ext.nextTree());

                            adaptor.addChild(root_0, root_1);
                            }

                        }
                        stream_ext.reset();

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:261:4: cxaction
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_cxaction_in_action655);
                    cxaction63=cxaction();

                    state._fsp--;

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

                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "action");
            		else 
            			ex.append("rule", ",action");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "action"

    public static class cxaction_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "cxaction"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:279:1: cxaction : ( xaction | wxaction );
    public final CGParser.cxaction_return cxaction() throws RecognitionException {
        CGParser.cxaction_return retval = new CGParser.cxaction_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        CGParser.xaction_return xaction64 = null;

        CGParser.wxaction_return wxaction65 = null;



        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:279:9: ( xaction | wxaction )
            int alt12=2;
            alt12 = dfa12.predict(input);
            switch (alt12) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:279:11: xaction
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_xaction_in_cxaction671);
                    xaction64=xaction();

                    state._fsp--;

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

                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:281:5: wxaction
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_wxaction_in_cxaction679);
                    wxaction65=wxaction();

                    state._fsp--;

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

                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "cxaction");
            		else 
            			ex.append("rule", ",cxaction");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "cxaction"

    public static class wxaction_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "wxaction"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:1: wxaction : uA ( SPACE wxOP ) ( ext )? -> uA ^( OP wxOP ) ( ^( EXT ext ) )? ;
    public final CGParser.wxaction_return wxaction() throws RecognitionException {
        CGParser.wxaction_return retval = new CGParser.wxaction_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE67=null;
        CGParser.uA_return uA66 = null;

        CGParser.wxOP_return wxOP68 = null;

        CGParser.ext_return ext69 = null;


        Object SPACE67_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleSubtreeStream stream_uA=new RewriteRuleSubtreeStream(adaptor,"rule uA");
        RewriteRuleSubtreeStream stream_ext=new RewriteRuleSubtreeStream(adaptor,"rule ext");
        RewriteRuleSubtreeStream stream_wxOP=new RewriteRuleSubtreeStream(adaptor,"rule wxOP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:10: ( uA ( SPACE wxOP ) ( ext )? -> uA ^( OP wxOP ) ( ^( EXT ext ) )? )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:12: uA ( SPACE wxOP ) ( ext )?
            {
            pushFollow(FOLLOW_uA_in_wxaction698);
            uA66=uA();

            state._fsp--;

            stream_uA.add(uA66.getTree());
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:15: ( SPACE wxOP )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:16: SPACE wxOP
            {
            SPACE67=(Token)match(input,SPACE,FOLLOW_SPACE_in_wxaction701);  
            stream_SPACE.add(SPACE67);

            pushFollow(FOLLOW_wxOP_in_wxaction703);
            wxOP68=wxOP();

            state._fsp--;

            stream_wxOP.add(wxOP68.getTree());

            }

            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:28: ( ext )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==SPACE) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:29: ext
                    {
                    pushFollow(FOLLOW_ext_in_wxaction707);
                    ext69=ext();

                    state._fsp--;

                    stream_ext.add(ext69.getTree());

                    }
                    break;

            }



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

            root_0 = (Object)adaptor.nil();
            // 300:35: -> uA ^( OP wxOP ) ( ^( EXT ext ) )?
            {
                adaptor.addChild(root_0, stream_uA.nextTree());
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:41: ^( OP wxOP )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OP, "OP"), root_1);

                adaptor.addChild(root_1, stream_wxOP.nextTree());

                adaptor.addChild(root_0, root_1);
                }
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:52: ( ^( EXT ext ) )?
                if ( stream_ext.hasNext() ) {
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:300:52: ^( EXT ext )
                    {
                    Object root_1 = (Object)adaptor.nil();
                    root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXT, "EXT"), root_1);

                    adaptor.addChild(root_1, stream_ext.nextTree());

                    adaptor.addChild(root_0, root_1);
                    }

                }
                stream_ext.reset();

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "wxaction");
            		else 
            			ex.append("rule", ",wxaction");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "wxaction"

    public static class xaction_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "xaction"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:1: xaction : uA ( SPACE oP ) ( wext )? -> uA ^( OP oP ) ( ^( EXT wext ) )? ;
    public final CGParser.xaction_return xaction() throws RecognitionException {
        CGParser.xaction_return retval = new CGParser.xaction_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE71=null;
        CGParser.uA_return uA70 = null;

        CGParser.oP_return oP72 = null;

        CGParser.wext_return wext73 = null;


        Object SPACE71_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleSubtreeStream stream_wext=new RewriteRuleSubtreeStream(adaptor,"rule wext");
        RewriteRuleSubtreeStream stream_uA=new RewriteRuleSubtreeStream(adaptor,"rule uA");
        RewriteRuleSubtreeStream stream_oP=new RewriteRuleSubtreeStream(adaptor,"rule oP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:9: ( uA ( SPACE oP ) ( wext )? -> uA ^( OP oP ) ( ^( EXT wext ) )? )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:11: uA ( SPACE oP ) ( wext )?
            {
            pushFollow(FOLLOW_uA_in_xaction744);
            uA70=uA();

            state._fsp--;

            stream_uA.add(uA70.getTree());
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:14: ( SPACE oP )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:15: SPACE oP
            {
            SPACE71=(Token)match(input,SPACE,FOLLOW_SPACE_in_xaction747);  
            stream_SPACE.add(SPACE71);

            pushFollow(FOLLOW_oP_in_xaction749);
            oP72=oP();

            state._fsp--;

            stream_oP.add(oP72.getTree());

            }

            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:25: ( wext )?
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==SPACE) ) {
                alt14=1;
            }
            switch (alt14) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:26: wext
                    {
                    pushFollow(FOLLOW_wext_in_xaction753);
                    wext73=wext();

                    state._fsp--;

                    stream_wext.add(wext73.getTree());

                    }
                    break;

            }



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

            root_0 = (Object)adaptor.nil();
            // 318:34: -> uA ^( OP oP ) ( ^( EXT wext ) )?
            {
                adaptor.addChild(root_0, stream_uA.nextTree());
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:40: ^( OP oP )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OP, "OP"), root_1);

                adaptor.addChild(root_1, stream_oP.nextTree());

                adaptor.addChild(root_0, root_1);
                }
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:49: ( ^( EXT wext ) )?
                if ( stream_wext.hasNext() ) {
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:318:49: ^( EXT wext )
                    {
                    Object root_1 = (Object)adaptor.nil();
                    root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(EXT, "EXT"), root_1);

                    adaptor.addChild(root_1, stream_wext.nextTree());

                    adaptor.addChild(root_0, root_1);
                    }

                }
                stream_wext.reset();

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "xaction");
            		else 
            			ex.append("rule", ",xaction");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "xaction"

    public static class oC_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oC"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:336:1: oC : ALPHANUM -> ^( OC ALPHANUM ) ;
    public final CGParser.oC_return oC() throws RecognitionException {
        CGParser.oC_return retval = new CGParser.oC_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token ALPHANUM74=null;

        Object ALPHANUM74_tree=null;
        RewriteRuleTokenStream stream_ALPHANUM=new RewriteRuleTokenStream(adaptor,"token ALPHANUM");

        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:336:4: ( ALPHANUM -> ^( OC ALPHANUM ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:336:6: ALPHANUM
            {
            ALPHANUM74=(Token)match(input,ALPHANUM,FOLLOW_ALPHANUM_in_oC791);  
            stream_ALPHANUM.add(ALPHANUM74);



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

            root_0 = (Object)adaptor.nil();
            // 336:16: -> ^( OC ALPHANUM )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:336:19: ^( OC ALPHANUM )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OC, "OC"), root_1);

                adaptor.addChild(root_1, stream_ALPHANUM.nextNode());

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oC");
            		else 
            			ex.append("rule", ",oC");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oC"

    public static class uA_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "uA"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:355:1: uA : ALPHANUM ;
    public final CGParser.uA_return uA() throws RecognitionException {
        CGParser.uA_return retval = new CGParser.uA_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token ALPHANUM75=null;

        Object ALPHANUM75_tree=null;

        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:355:4: ( ALPHANUM )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:355:6: ALPHANUM
            {
            root_0 = (Object)adaptor.nil();

            ALPHANUM75=(Token)match(input,ALPHANUM,FOLLOW_ALPHANUM_in_uA818); 
            ALPHANUM75_tree = (Object)adaptor.create(ALPHANUM75);
            adaptor.addChild(root_0, ALPHANUM75_tree);


            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "uA");
            		else 
            			ex.append("rule", ",uA");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "uA"

    public static class oA_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oA"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:373:1: oA : ALPHANUM ;
    public final CGParser.oA_return oA() throws RecognitionException {
        CGParser.oA_return retval = new CGParser.oA_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token ALPHANUM76=null;

        Object ALPHANUM76_tree=null;

        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:373:4: ( ALPHANUM )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:373:6: ALPHANUM
            {
            root_0 = (Object)adaptor.nil();

            ALPHANUM76=(Token)match(input,ALPHANUM,FOLLOW_ALPHANUM_in_oA835); 
            ALPHANUM76_tree = (Object)adaptor.create(ALPHANUM76);
            adaptor.addChild(root_0, ALPHANUM76_tree);


            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oA");
            		else 
            			ex.append("rule", ",oA");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oA"

    public static class pseudoOP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "pseudoOP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:391:1: pseudoOP : ( oAP | coAXP | oAXP );
    public final CGParser.pseudoOP_return pseudoOP() throws RecognitionException {
        CGParser.pseudoOP_return retval = new CGParser.pseudoOP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        CGParser.oAP_return oAP77 = null;

        CGParser.coAXP_return coAXP78 = null;

        CGParser.oAXP_return oAXP79 = null;



        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:391:9: ( oAP | coAXP | oAXP )
            int alt15=3;
            alt15 = dfa15.predict(input);
            switch (alt15) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:391:11: oAP
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_oAP_in_pseudoOP851);
                    oAP77=oAP();

                    state._fsp--;

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

                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:392:4: coAXP
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_coAXP_in_pseudoOP856);
                    coAXP78=coAXP();

                    state._fsp--;

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

                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:393:4: oAXP
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_oAXP_in_pseudoOP861);
                    oAXP79=oAXP();

                    state._fsp--;

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

                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "pseudoOP");
            		else 
            			ex.append("rule", ",psuedoOP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "pseudoOP"

    public static class wOP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "wOP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:411:1: wOP : ( oC | oAP | oVP -> ^( OVP oVP ) );
    public final CGParser.wOP_return wOP() throws RecognitionException {
        CGParser.wOP_return retval = new CGParser.wOP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        CGParser.oC_return oC80 = null;

        CGParser.oAP_return oAP81 = null;

        CGParser.oVP_return oVP82 = null;


        RewriteRuleSubtreeStream stream_oVP=new RewriteRuleSubtreeStream(adaptor,"rule oVP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:411:5: ( oC | oAP | oVP -> ^( OVP oVP ) )
            int alt16=3;
            alt16 = dfa16.predict(input);
            switch (alt16) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:411:7: oC
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_oC_in_wOP878);
                    oC80=oC();

                    state._fsp--;

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

                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:412:4: oAP
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_oAP_in_wOP883);
                    oAP81=oAP();

                    state._fsp--;

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

                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:413:4: oVP
                    {
                    pushFollow(FOLLOW_oVP_in_wOP888);
                    oVP82=oVP();

                    state._fsp--;

                    stream_oVP.add(oVP82.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 413:8: -> ^( OVP oVP )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:413:11: ^( OVP oVP )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OVP, "OVP"), root_1);

                        adaptor.addChild(root_1, stream_oVP.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oP");
            		else 
            			ex.append("rule", ",oP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "wOP"

    public static class wxOP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "wxOP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:432:1: wxOP : ( allOC | specOC | oAXP );
    public final CGParser.wxOP_return wxOP() throws RecognitionException {
        CGParser.wxOP_return retval = new CGParser.wxOP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        CGParser.allOC_return allOC83 = null;

        CGParser.specOC_return specOC84 = null;

        CGParser.oAXP_return oAXP85 = null;



        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:432:6: ( allOC | specOC | oAXP )
            int alt17=3;
            switch ( input.LA(1) ) {
            case ALL:
                {
                alt17=1;
                }
                break;
            case SPECIFIC:
                {
                alt17=2;
                }
                break;
            case ALPHANUM:
                {
                alt17=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 17, 0, input);

                throw nvae;
            }

            switch (alt17) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:432:8: allOC
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_allOC_in_wxOP915);
                    allOC83=allOC();

                    state._fsp--;

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

                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:433:4: specOC
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_specOC_in_wxOP920);
                    specOC84=specOC();

                    state._fsp--;

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

                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:434:4: oAXP
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_oAXP_in_wxOP925);
                    oAXP85=oAXP();

                    state._fsp--;

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

                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oP");
            		else 
            			ex.append("rule", ",oP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "wxOP"

    public static class allOC_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "allOC"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:452:1: allOC : ALL SPACE oC -> ^( ALLOC oC ) ;
    public final CGParser.allOC_return allOC() throws RecognitionException {
        CGParser.allOC_return retval = new CGParser.allOC_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token ALL86=null;
        Token SPACE87=null;
        CGParser.oC_return oC88 = null;


        Object ALL86_tree=null;
        Object SPACE87_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_ALL=new RewriteRuleTokenStream(adaptor,"token ALL");
        RewriteRuleSubtreeStream stream_oC=new RewriteRuleSubtreeStream(adaptor,"rule oC");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:452:7: ( ALL SPACE oC -> ^( ALLOC oC ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:452:9: ALL SPACE oC
            {
            ALL86=(Token)match(input,ALL,FOLLOW_ALL_in_allOC943);  
            stream_ALL.add(ALL86);

            SPACE87=(Token)match(input,SPACE,FOLLOW_SPACE_in_allOC945);  
            stream_SPACE.add(SPACE87);

            pushFollow(FOLLOW_oC_in_allOC947);
            oC88=oC();

            state._fsp--;

            stream_oC.add(oC88.getTree());


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

            root_0 = (Object)adaptor.nil();
            // 452:24: -> ^( ALLOC oC )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:452:27: ^( ALLOC oC )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ALLOC, "ALLOC"), root_1);

                adaptor.addChild(root_1, stream_oC.nextTree());

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "allOC");
            		else 
            			ex.append("rule", ",allOC");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "allOC"

    public static class specOC_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "specOC"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:470:1: specOC : SPECIFIC SPACE oC -> ^( SPECOC oC ) ;
    public final CGParser.specOC_return specOC() throws RecognitionException {
        CGParser.specOC_return retval = new CGParser.specOC_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPECIFIC89=null;
        Token SPACE90=null;
        CGParser.oC_return oC91 = null;


        Object SPECIFIC89_tree=null;
        Object SPACE90_tree=null;
        RewriteRuleTokenStream stream_SPECIFIC=new RewriteRuleTokenStream(adaptor,"token SPECIFIC");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleSubtreeStream stream_oC=new RewriteRuleSubtreeStream(adaptor,"rule oC");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:470:8: ( SPECIFIC SPACE oC -> ^( SPECOC oC ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:470:10: SPECIFIC SPACE oC
            {
            SPECIFIC89=(Token)match(input,SPECIFIC,FOLLOW_SPECIFIC_in_specOC974);  
            stream_SPECIFIC.add(SPECIFIC89);

            SPACE90=(Token)match(input,SPACE,FOLLOW_SPACE_in_specOC976);  
            stream_SPACE.add(SPACE90);

            pushFollow(FOLLOW_oC_in_specOC978);
            oC91=oC();

            state._fsp--;

            stream_oC.add(oC91.getTree());


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

            root_0 = (Object)adaptor.nil();
            // 470:29: -> ^( SPECOC oC )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:470:32: ^( SPECOC oC )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SPECOC, "SPECOC"), root_1);

                adaptor.addChild(root_1, stream_oC.nextTree());

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "specOC");
            		else 
            			ex.append("rule", ",specOC");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "specOC"

    public static class oAXP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oAXP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:488:1: oAXP : ( oA SPACE OF SPACE allOC -> ^( OAXP oA allOC ) | oA SPACE OF SPACE specOC -> ^( OAXP oA specOC ) );
    public final CGParser.oAXP_return oAXP() throws RecognitionException {
        CGParser.oAXP_return retval = new CGParser.oAXP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE93=null;
        Token OF94=null;
        Token SPACE95=null;
        Token SPACE98=null;
        Token OF99=null;
        Token SPACE100=null;
        CGParser.oA_return oA92 = null;

        CGParser.allOC_return allOC96 = null;

        CGParser.oA_return oA97 = null;

        CGParser.specOC_return specOC101 = null;


        Object SPACE93_tree=null;
        Object OF94_tree=null;
        Object SPACE95_tree=null;
        Object SPACE98_tree=null;
        Object OF99_tree=null;
        Object SPACE100_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_OF=new RewriteRuleTokenStream(adaptor,"token OF");
        RewriteRuleSubtreeStream stream_oA=new RewriteRuleSubtreeStream(adaptor,"rule oA");
        RewriteRuleSubtreeStream stream_allOC=new RewriteRuleSubtreeStream(adaptor,"rule allOC");
        RewriteRuleSubtreeStream stream_specOC=new RewriteRuleSubtreeStream(adaptor,"rule specOC");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:488:6: ( oA SPACE OF SPACE allOC -> ^( OAXP oA allOC ) | oA SPACE OF SPACE specOC -> ^( OAXP oA specOC ) )
            int alt18=2;
            int LA18_0 = input.LA(1);

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

                if ( (LA18_1==SPACE) ) {
                    int LA18_2 = input.LA(3);

                    if ( (LA18_2==OF) ) {
                        int LA18_3 = input.LA(4);

                        if ( (LA18_3==SPACE) ) {
                            int LA18_4 = input.LA(5);

                            if ( (LA18_4==ALL) ) {
                                alt18=1;
                            }
                            else if ( (LA18_4==SPECIFIC) ) {
                                alt18=2;
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("", 18, 4, input);

                                throw nvae;
                            }
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 18, 3, input);

                            throw nvae;
                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 18, 2, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 18, 1, input);

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

                throw nvae;
            }
            switch (alt18) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:488:8: oA SPACE OF SPACE allOC
                    {
                    pushFollow(FOLLOW_oA_in_oAXP1004);
                    oA92=oA();

                    state._fsp--;

                    stream_oA.add(oA92.getTree());
                    SPACE93=(Token)match(input,SPACE,FOLLOW_SPACE_in_oAXP1006);  
                    stream_SPACE.add(SPACE93);

                    OF94=(Token)match(input,OF,FOLLOW_OF_in_oAXP1008);  
                    stream_OF.add(OF94);

                    SPACE95=(Token)match(input,SPACE,FOLLOW_SPACE_in_oAXP1010);  
                    stream_SPACE.add(SPACE95);

                    pushFollow(FOLLOW_allOC_in_oAXP1012);
                    allOC96=allOC();

                    state._fsp--;

                    stream_allOC.add(allOC96.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 488:32: -> ^( OAXP oA allOC )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:488:35: ^( OAXP oA allOC )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OAXP, "OAXP"), root_1);

                        adaptor.addChild(root_1, stream_oA.nextTree());
                        adaptor.addChild(root_1, stream_allOC.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:489:4: oA SPACE OF SPACE specOC
                    {
                    pushFollow(FOLLOW_oA_in_oAXP1027);
                    oA97=oA();

                    state._fsp--;

                    stream_oA.add(oA97.getTree());
                    SPACE98=(Token)match(input,SPACE,FOLLOW_SPACE_in_oAXP1029);  
                    stream_SPACE.add(SPACE98);

                    OF99=(Token)match(input,OF,FOLLOW_OF_in_oAXP1031);  
                    stream_OF.add(OF99);

                    SPACE100=(Token)match(input,SPACE,FOLLOW_SPACE_in_oAXP1033);  
                    stream_SPACE.add(SPACE100);

                    pushFollow(FOLLOW_specOC_in_oAXP1035);
                    specOC101=specOC();

                    state._fsp--;

                    stream_specOC.add(specOC101.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 489:29: -> ^( OAXP oA specOC )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:489:32: ^( OAXP oA specOC )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OAXP, "OAXP"), root_1);

                        adaptor.addChild(root_1, stream_oA.nextTree());
                        adaptor.addChild(root_1, stream_specOC.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oAXP");
            		else 
            			ex.append("rule", ",oAXP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oAXP"

    public static class oP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:507:1: oP : ( callOC | cspecOC | coAXP );
    public final CGParser.oP_return oP() throws RecognitionException {
        CGParser.oP_return retval = new CGParser.oP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        CGParser.callOC_return callOC102 = null;

        CGParser.cspecOC_return cspecOC103 = null;

        CGParser.coAXP_return coAXP104 = null;



        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:507:4: ( callOC | cspecOC | coAXP )
            int alt19=3;
            switch ( input.LA(1) ) {
            case ALL:
                {
                alt19=1;
                }
                break;
            case SPECIFIC:
                {
                alt19=2;
                }
                break;
            case ALPHANUM:
                {
                alt19=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 19, 0, input);

                throw nvae;
            }

            switch (alt19) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:507:6: callOC
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_callOC_in_oP1062);
                    callOC102=callOC();

                    state._fsp--;

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

                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:508:4: cspecOC
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_cspecOC_in_oP1067);
                    cspecOC103=cspecOC();

                    state._fsp--;

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

                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:509:4: coAXP
                    {
                    root_0 = (Object)adaptor.nil();

                    pushFollow(FOLLOW_coAXP_in_oP1072);
                    coAXP104=coAXP();

                    state._fsp--;

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

                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oP");
            		else 
            			ex.append("rule", ",oP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oP"

    public static class callOC_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "callOC"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:528:1: callOC : ALL SPACE oC ( SPACE HAVING SPACE oVHSP ) -> ^( ALLOC oC oVHSP ) ;
    public final CGParser.callOC_return callOC() throws RecognitionException {
        CGParser.callOC_return retval = new CGParser.callOC_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token ALL105=null;
        Token SPACE106=null;
        Token SPACE108=null;
        Token HAVING109=null;
        Token SPACE110=null;
        CGParser.oC_return oC107 = null;

        CGParser.oVHSP_return oVHSP111 = null;


        Object ALL105_tree=null;
        Object SPACE106_tree=null;
        Object SPACE108_tree=null;
        Object HAVING109_tree=null;
        Object SPACE110_tree=null;
        RewriteRuleTokenStream stream_HAVING=new RewriteRuleTokenStream(adaptor,"token HAVING");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_ALL=new RewriteRuleTokenStream(adaptor,"token ALL");
        RewriteRuleSubtreeStream stream_oVHSP=new RewriteRuleSubtreeStream(adaptor,"rule oVHSP");
        RewriteRuleSubtreeStream stream_oC=new RewriteRuleSubtreeStream(adaptor,"rule oC");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:528:8: ( ALL SPACE oC ( SPACE HAVING SPACE oVHSP ) -> ^( ALLOC oC oVHSP ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:528:10: ALL SPACE oC ( SPACE HAVING SPACE oVHSP )
            {
            ALL105=(Token)match(input,ALL,FOLLOW_ALL_in_callOC1091);  
            stream_ALL.add(ALL105);

            SPACE106=(Token)match(input,SPACE,FOLLOW_SPACE_in_callOC1093);  
            stream_SPACE.add(SPACE106);

            pushFollow(FOLLOW_oC_in_callOC1095);
            oC107=oC();

            state._fsp--;

            stream_oC.add(oC107.getTree());
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:528:23: ( SPACE HAVING SPACE oVHSP )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:528:24: SPACE HAVING SPACE oVHSP
            {
            SPACE108=(Token)match(input,SPACE,FOLLOW_SPACE_in_callOC1098);  
            stream_SPACE.add(SPACE108);

            HAVING109=(Token)match(input,HAVING,FOLLOW_HAVING_in_callOC1100);  
            stream_HAVING.add(HAVING109);

            SPACE110=(Token)match(input,SPACE,FOLLOW_SPACE_in_callOC1102);  
            stream_SPACE.add(SPACE110);

            pushFollow(FOLLOW_oVHSP_in_callOC1104);
            oVHSP111=oVHSP();

            state._fsp--;

            stream_oVHSP.add(oVHSP111.getTree());

            }



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

            root_0 = (Object)adaptor.nil();
            // 528:50: -> ^( ALLOC oC oVHSP )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:528:53: ^( ALLOC oC oVHSP )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ALLOC, "ALLOC"), root_1);

                adaptor.addChild(root_1, stream_oC.nextTree());
                adaptor.addChild(root_1, stream_oVHSP.nextTree());

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "allOC");
            		else 
            			ex.append("rule", ",allOC");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "callOC"

    public static class cspecOC_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "cspecOC"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:546:1: cspecOC : SPECIFIC SPACE oC ( SPACE HAVING SPACE oVHSP ) -> ^( SPECOC oC oVHSP ) ;
    public final CGParser.cspecOC_return cspecOC() throws RecognitionException {
        CGParser.cspecOC_return retval = new CGParser.cspecOC_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPECIFIC112=null;
        Token SPACE113=null;
        Token SPACE115=null;
        Token HAVING116=null;
        Token SPACE117=null;
        CGParser.oC_return oC114 = null;

        CGParser.oVHSP_return oVHSP118 = null;


        Object SPECIFIC112_tree=null;
        Object SPACE113_tree=null;
        Object SPACE115_tree=null;
        Object HAVING116_tree=null;
        Object SPACE117_tree=null;
        RewriteRuleTokenStream stream_HAVING=new RewriteRuleTokenStream(adaptor,"token HAVING");
        RewriteRuleTokenStream stream_SPECIFIC=new RewriteRuleTokenStream(adaptor,"token SPECIFIC");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleSubtreeStream stream_oVHSP=new RewriteRuleSubtreeStream(adaptor,"rule oVHSP");
        RewriteRuleSubtreeStream stream_oC=new RewriteRuleSubtreeStream(adaptor,"rule oC");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:546:9: ( SPECIFIC SPACE oC ( SPACE HAVING SPACE oVHSP ) -> ^( SPECOC oC oVHSP ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:546:11: SPECIFIC SPACE oC ( SPACE HAVING SPACE oVHSP )
            {
            SPECIFIC112=(Token)match(input,SPECIFIC,FOLLOW_SPECIFIC_in_cspecOC1132);  
            stream_SPECIFIC.add(SPECIFIC112);

            SPACE113=(Token)match(input,SPACE,FOLLOW_SPACE_in_cspecOC1134);  
            stream_SPACE.add(SPACE113);

            pushFollow(FOLLOW_oC_in_cspecOC1136);
            oC114=oC();

            state._fsp--;

            stream_oC.add(oC114.getTree());
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:546:29: ( SPACE HAVING SPACE oVHSP )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:546:30: SPACE HAVING SPACE oVHSP
            {
            SPACE115=(Token)match(input,SPACE,FOLLOW_SPACE_in_cspecOC1139);  
            stream_SPACE.add(SPACE115);

            HAVING116=(Token)match(input,HAVING,FOLLOW_HAVING_in_cspecOC1141);  
            stream_HAVING.add(HAVING116);

            SPACE117=(Token)match(input,SPACE,FOLLOW_SPACE_in_cspecOC1143);  
            stream_SPACE.add(SPACE117);

            pushFollow(FOLLOW_oVHSP_in_cspecOC1145);
            oVHSP118=oVHSP();

            state._fsp--;

            stream_oVHSP.add(oVHSP118.getTree());

            }



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

            root_0 = (Object)adaptor.nil();
            // 546:56: -> ^( SPECOC oC oVHSP )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:546:59: ^( SPECOC oC oVHSP )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(SPECOC, "SPECOC"), root_1);

                adaptor.addChild(root_1, stream_oC.nextTree());
                adaptor.addChild(root_1, stream_oVHSP.nextTree());

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "specOC");
            		else 
            			ex.append("rule", ",specOC");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "cspecOC"

    public static class oAP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oAP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:564:1: oAP : oA SPACE ( OF ) SPACE oC -> ^( OAP oA oC ) ;
    public final CGParser.oAP_return oAP() throws RecognitionException {
        CGParser.oAP_return retval = new CGParser.oAP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE120=null;
        Token OF121=null;
        Token SPACE122=null;
        CGParser.oA_return oA119 = null;

        CGParser.oC_return oC123 = null;


        Object SPACE120_tree=null;
        Object OF121_tree=null;
        Object SPACE122_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_OF=new RewriteRuleTokenStream(adaptor,"token OF");
        RewriteRuleSubtreeStream stream_oA=new RewriteRuleSubtreeStream(adaptor,"rule oA");
        RewriteRuleSubtreeStream stream_oC=new RewriteRuleSubtreeStream(adaptor,"rule oC");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:564:5: ( oA SPACE ( OF ) SPACE oC -> ^( OAP oA oC ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:564:7: oA SPACE ( OF ) SPACE oC
            {
            pushFollow(FOLLOW_oA_in_oAP1174);
            oA119=oA();

            state._fsp--;

            stream_oA.add(oA119.getTree());
            SPACE120=(Token)match(input,SPACE,FOLLOW_SPACE_in_oAP1176);  
            stream_SPACE.add(SPACE120);

            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:564:16: ( OF )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:564:17: OF
            {
            OF121=(Token)match(input,OF,FOLLOW_OF_in_oAP1179);  
            stream_OF.add(OF121);


            }

            SPACE122=(Token)match(input,SPACE,FOLLOW_SPACE_in_oAP1182);  
            stream_SPACE.add(SPACE122);

            pushFollow(FOLLOW_oC_in_oAP1184);
            oC123=oC();

            state._fsp--;

            stream_oC.add(oC123.getTree());


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

            root_0 = (Object)adaptor.nil();
            // 564:30: -> ^( OAP oA oC )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:564:33: ^( OAP oA oC )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OAP, "OAP"), root_1);

                adaptor.addChild(root_1, stream_oA.nextTree());
                adaptor.addChild(root_1, stream_oC.nextTree());

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oAP");
            		else 
            			ex.append("rule", ",oAP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oAP"

    public static class coAXP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "coAXP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:582:1: coAXP : ( oA SPACE OF SPACE callOC -> ^( OAXP oA callOC ) | oA SPACE OF SPACE cspecOC -> ^( OAXP oA cspecOC ) );
    public final CGParser.coAXP_return coAXP() throws RecognitionException {
        CGParser.coAXP_return retval = new CGParser.coAXP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE125=null;
        Token OF126=null;
        Token SPACE127=null;
        Token SPACE130=null;
        Token OF131=null;
        Token SPACE132=null;
        CGParser.oA_return oA124 = null;

        CGParser.callOC_return callOC128 = null;

        CGParser.oA_return oA129 = null;

        CGParser.cspecOC_return cspecOC133 = null;


        Object SPACE125_tree=null;
        Object OF126_tree=null;
        Object SPACE127_tree=null;
        Object SPACE130_tree=null;
        Object OF131_tree=null;
        Object SPACE132_tree=null;
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_OF=new RewriteRuleTokenStream(adaptor,"token OF");
        RewriteRuleSubtreeStream stream_oA=new RewriteRuleSubtreeStream(adaptor,"rule oA");
        RewriteRuleSubtreeStream stream_callOC=new RewriteRuleSubtreeStream(adaptor,"rule callOC");
        RewriteRuleSubtreeStream stream_cspecOC=new RewriteRuleSubtreeStream(adaptor,"rule cspecOC");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:582:7: ( oA SPACE OF SPACE callOC -> ^( OAXP oA callOC ) | oA SPACE OF SPACE cspecOC -> ^( OAXP oA cspecOC ) )
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( (LA20_0==ALPHANUM) ) {
                int LA20_1 = input.LA(2);

                if ( (LA20_1==SPACE) ) {
                    int LA20_2 = input.LA(3);

                    if ( (LA20_2==OF) ) {
                        int LA20_3 = input.LA(4);

                        if ( (LA20_3==SPACE) ) {
                            int LA20_4 = input.LA(5);

                            if ( (LA20_4==ALL) ) {
                                alt20=1;
                            }
                            else if ( (LA20_4==SPECIFIC) ) {
                                alt20=2;
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("", 20, 4, input);

                                throw nvae;
                            }
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 20, 3, input);

                            throw nvae;
                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 20, 2, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 20, 1, input);

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

                throw nvae;
            }
            switch (alt20) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:582:9: oA SPACE OF SPACE callOC
                    {
                    pushFollow(FOLLOW_oA_in_coAXP1212);
                    oA124=oA();

                    state._fsp--;

                    stream_oA.add(oA124.getTree());
                    SPACE125=(Token)match(input,SPACE,FOLLOW_SPACE_in_coAXP1214);  
                    stream_SPACE.add(SPACE125);

                    OF126=(Token)match(input,OF,FOLLOW_OF_in_coAXP1216);  
                    stream_OF.add(OF126);

                    SPACE127=(Token)match(input,SPACE,FOLLOW_SPACE_in_coAXP1218);  
                    stream_SPACE.add(SPACE127);

                    pushFollow(FOLLOW_callOC_in_coAXP1220);
                    callOC128=callOC();

                    state._fsp--;

                    stream_callOC.add(callOC128.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 582:34: -> ^( OAXP oA callOC )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:582:37: ^( OAXP oA callOC )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OAXP, "OAXP"), root_1);

                        adaptor.addChild(root_1, stream_oA.nextTree());
                        adaptor.addChild(root_1, stream_callOC.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:583:4: oA SPACE OF SPACE cspecOC
                    {
                    pushFollow(FOLLOW_oA_in_coAXP1235);
                    oA129=oA();

                    state._fsp--;

                    stream_oA.add(oA129.getTree());
                    SPACE130=(Token)match(input,SPACE,FOLLOW_SPACE_in_coAXP1237);  
                    stream_SPACE.add(SPACE130);

                    OF131=(Token)match(input,OF,FOLLOW_OF_in_coAXP1239);  
                    stream_OF.add(OF131);

                    SPACE132=(Token)match(input,SPACE,FOLLOW_SPACE_in_coAXP1241);  
                    stream_SPACE.add(SPACE132);

                    pushFollow(FOLLOW_cspecOC_in_coAXP1243);
                    cspecOC133=cspecOC();

                    state._fsp--;

                    stream_cspecOC.add(cspecOC133.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 583:30: -> ^( OAXP oA cspecOC )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:583:33: ^( OAXP oA cspecOC )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OAXP, "OAXP"), root_1);

                        adaptor.addChild(root_1, stream_oA.nextTree());
                        adaptor.addChild(root_1, stream_cspecOC.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oAXP");
            		else 
            			ex.append("rule", ",oAXP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "coAXP"

    public static class oVP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oVP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:602:1: oVP : ( oAP SPACE BY SPACE oV -> ^( T_BY oAP oV ) | oAP SPACE TO SPACE oV -> ^( T_TO oAP oV ) );
    public final CGParser.oVP_return oVP() throws RecognitionException {
        CGParser.oVP_return retval = new CGParser.oVP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE135=null;
        Token BY136=null;
        Token SPACE137=null;
        Token SPACE140=null;
        Token TO141=null;
        Token SPACE142=null;
        CGParser.oAP_return oAP134 = null;

        CGParser.oV_return oV138 = null;

        CGParser.oAP_return oAP139 = null;

        CGParser.oV_return oV143 = null;


        Object SPACE135_tree=null;
        Object BY136_tree=null;
        Object SPACE137_tree=null;
        Object SPACE140_tree=null;
        Object TO141_tree=null;
        Object SPACE142_tree=null;
        RewriteRuleTokenStream stream_BY=new RewriteRuleTokenStream(adaptor,"token BY");
        RewriteRuleTokenStream stream_TO=new RewriteRuleTokenStream(adaptor,"token TO");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleSubtreeStream stream_oV=new RewriteRuleSubtreeStream(adaptor,"rule oV");
        RewriteRuleSubtreeStream stream_oAP=new RewriteRuleSubtreeStream(adaptor,"rule oAP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:602:5: ( oAP SPACE BY SPACE oV -> ^( T_BY oAP oV ) | oAP SPACE TO SPACE oV -> ^( T_TO oAP oV ) )
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( (LA21_0==ALPHANUM) ) {
                int LA21_1 = input.LA(2);

                if ( (LA21_1==SPACE) ) {
                    int LA21_2 = input.LA(3);

                    if ( (LA21_2==OF) ) {
                        int LA21_3 = input.LA(4);

                        if ( (LA21_3==SPACE) ) {
                            int LA21_4 = input.LA(5);

                            if ( (LA21_4==ALPHANUM) ) {
                                int LA21_5 = input.LA(6);

                                if ( (LA21_5==SPACE) ) {
                                    int LA21_6 = input.LA(7);

                                    if ( (LA21_6==TO) ) {
                                        alt21=2;
                                    }
                                    else if ( (LA21_6==BY) ) {
                                        alt21=1;
                                    }
                                    else {
                                        NoViableAltException nvae =
                                            new NoViableAltException("", 21, 6, input);

                                        throw nvae;
                                    }
                                }
                                else {
                                    NoViableAltException nvae =
                                        new NoViableAltException("", 21, 5, input);

                                    throw nvae;
                                }
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("", 21, 4, input);

                                throw nvae;
                            }
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("", 21, 3, input);

                            throw nvae;
                        }
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 21, 2, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 21, 1, input);

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

                throw nvae;
            }
            switch (alt21) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:602:7: oAP SPACE BY SPACE oV
                    {
                    pushFollow(FOLLOW_oAP_in_oVP1272);
                    oAP134=oAP();

                    state._fsp--;

                    stream_oAP.add(oAP134.getTree());
                    SPACE135=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVP1274);  
                    stream_SPACE.add(SPACE135);

                    BY136=(Token)match(input,BY,FOLLOW_BY_in_oVP1276);  
                    stream_BY.add(BY136);

                    SPACE137=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVP1278);  
                    stream_SPACE.add(SPACE137);

                    pushFollow(FOLLOW_oV_in_oVP1280);
                    oV138=oV();

                    state._fsp--;

                    stream_oV.add(oV138.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 602:30: -> ^( T_BY oAP oV )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:602:33: ^( T_BY oAP oV )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_BY, "T_BY"), root_1);

                        adaptor.addChild(root_1, stream_oAP.nextTree());
                        adaptor.addChild(root_1, stream_oV.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:603:4: oAP SPACE TO SPACE oV
                    {
                    pushFollow(FOLLOW_oAP_in_oVP1296);
                    oAP139=oAP();

                    state._fsp--;

                    stream_oAP.add(oAP139.getTree());
                    SPACE140=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVP1298);  
                    stream_SPACE.add(SPACE140);

                    TO141=(Token)match(input,TO,FOLLOW_TO_in_oVP1300);  
                    stream_TO.add(TO141);

                    SPACE142=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVP1302);  
                    stream_SPACE.add(SPACE142);

                    pushFollow(FOLLOW_oV_in_oVP1304);
                    oV143=oV();

                    state._fsp--;

                    stream_oV.add(oV143.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 603:27: -> ^( T_TO oAP oV )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:603:30: ^( T_TO oAP oV )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_TO, "T_TO"), root_1);

                        adaptor.addChild(root_1, stream_oAP.nextTree());
                        adaptor.addChild(root_1, stream_oV.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oVP");
            		else 
            			ex.append("rule", ",oVP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oVP"

    public static class oVCP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oVCP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:1: oVCP : oVCP1 ( SPACE ( AND | OR ) SPACE oVCP1 )* -> ^( OVCP ( oVCP1 )+ ) ;
    public final CGParser.oVCP_return oVCP() throws RecognitionException {
        CGParser.oVCP_return retval = new CGParser.oVCP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE145=null;
        Token AND146=null;
        Token OR147=null;
        Token SPACE148=null;
        CGParser.oVCP1_return oVCP1144 = null;

        CGParser.oVCP1_return oVCP1149 = null;


        Object SPACE145_tree=null;
        Object AND146_tree=null;
        Object OR147_tree=null;
        Object SPACE148_tree=null;
        RewriteRuleTokenStream stream_AND=new RewriteRuleTokenStream(adaptor,"token AND");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR");
        RewriteRuleSubtreeStream stream_oVCP1=new RewriteRuleSubtreeStream(adaptor,"rule oVCP1");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:6: ( oVCP1 ( SPACE ( AND | OR ) SPACE oVCP1 )* -> ^( OVCP ( oVCP1 )+ ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:8: oVCP1 ( SPACE ( AND | OR ) SPACE oVCP1 )*
            {
            pushFollow(FOLLOW_oVCP1_in_oVCP1333);
            oVCP1144=oVCP1();

            state._fsp--;

            stream_oVCP1.add(oVCP1144.getTree());
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:14: ( SPACE ( AND | OR ) SPACE oVCP1 )*
            loop23:
            do {
                int alt23=2;
                int LA23_0 = input.LA(1);

                if ( (LA23_0==SPACE) ) {
                    int LA23_1 = input.LA(2);

                    if ( ((LA23_1>=AND && LA23_1<=OR)) ) {
                        alt23=1;
                    }


                }


                switch (alt23) {
            	case 1 :
            	    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:15: SPACE ( AND | OR ) SPACE oVCP1
            	    {
            	    SPACE145=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP1336);  
            	    stream_SPACE.add(SPACE145);

            	    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:20: ( AND | OR )
            	    int alt22=2;
            	    int LA22_0 = input.LA(1);

            	    if ( (LA22_0==AND) ) {
            	        alt22=1;
            	    }
            	    else if ( (LA22_0==OR) ) {
            	        alt22=2;
            	    }
            	    else {
            	        NoViableAltException nvae =
            	            new NoViableAltException("", 22, 0, input);

            	        throw nvae;
            	    }
            	    switch (alt22) {
            	        case 1 :
            	            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:21: AND
            	            {
            	            AND146=(Token)match(input,AND,FOLLOW_AND_in_oVCP1338);  
            	            stream_AND.add(AND146);


            	            }
            	            break;
            	        case 2 :
            	            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:25: OR
            	            {
            	            OR147=(Token)match(input,OR,FOLLOW_OR_in_oVCP1340);  
            	            stream_OR.add(OR147);


            	            }
            	            break;

            	    }

            	    SPACE148=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP1342);  
            	    stream_SPACE.add(SPACE148);

            	    pushFollow(FOLLOW_oVCP1_in_oVCP1344);
            	    oVCP1149=oVCP1();

            	    state._fsp--;

            	    stream_oVCP1.add(oVCP1149.getTree());

            	    }
            	    break;

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



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

            root_0 = (Object)adaptor.nil();
            // 622:42: -> ^( OVCP ( oVCP1 )+ )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:622:45: ^( OVCP ( oVCP1 )+ )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OVCP, "OVCP"), root_1);

                if ( !(stream_oVCP1.hasNext()) ) {
                    throw new RewriteEarlyExitException();
                }
                while ( stream_oVCP1.hasNext() ) {
                    adaptor.addChild(root_1, stream_oVCP1.nextTree());

                }
                stream_oVCP1.reset();

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oVCP");
            		else 
            			ex.append("rule", ",oVCP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oVCP"

    public static class prepostCond_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "prepostCond"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:640:1: prepostCond : oVCP1 -> ^( OVCP oVCP1 ) ;
    public final CGParser.prepostCond_return prepostCond() throws RecognitionException {
        CGParser.prepostCond_return retval = new CGParser.prepostCond_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        CGParser.oVCP1_return oVCP1150 = null;


        RewriteRuleSubtreeStream stream_oVCP1=new RewriteRuleSubtreeStream(adaptor,"rule oVCP1");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:641:2: ( oVCP1 -> ^( OVCP oVCP1 ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:641:4: oVCP1
            {
            pushFollow(FOLLOW_oVCP1_in_prepostCond1374);
            oVCP1150=oVCP1();

            state._fsp--;

            stream_oVCP1.add(oVCP1150.getTree());


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

            root_0 = (Object)adaptor.nil();
            // 641:13: -> ^( OVCP oVCP1 )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:641:16: ^( OVCP oVCP1 )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OVCP, "OVCP"), root_1);

                adaptor.addChild(root_1, stream_oVCP1.nextTree());

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "prepostCond");
            		else 
            			ex.append("rule", ",prepostCond");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "prepostCond"

    public static class oVCP1_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oVCP1"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:660:1: oVCP1 : ( oAP SPACE ISNOT SPACE oV -> ^( T_ISNT oAP oV ) | oAP SPACE IS SPACE oV -> ^( T_IS oAP oV ) | o1= oAP SPACE EQUALS SPACE o2= oAP -> ^( T_EQUALTO $o1 $o2) | o1= oAP SPACE ISPARTOF SPACE o2= oAP -> ^( T_PART $o1 $o2) );
    public final CGParser.oVCP1_return oVCP1() throws RecognitionException {
        CGParser.oVCP1_return retval = new CGParser.oVCP1_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE152=null;
        Token ISNOT153=null;
        Token SPACE154=null;
        Token SPACE157=null;
        Token IS158=null;
        Token SPACE159=null;
        Token SPACE161=null;
        Token EQUALS162=null;
        Token SPACE163=null;
        Token SPACE164=null;
        Token ISPARTOF165=null;
        Token SPACE166=null;
        CGParser.oAP_return o1 = null;

        CGParser.oAP_return o2 = null;

        CGParser.oAP_return oAP151 = null;

        CGParser.oV_return oV155 = null;

        CGParser.oAP_return oAP156 = null;

        CGParser.oV_return oV160 = null;


        Object SPACE152_tree=null;
        Object ISNOT153_tree=null;
        Object SPACE154_tree=null;
        Object SPACE157_tree=null;
        Object IS158_tree=null;
        Object SPACE159_tree=null;
        Object SPACE161_tree=null;
        Object EQUALS162_tree=null;
        Object SPACE163_tree=null;
        Object SPACE164_tree=null;
        Object ISPARTOF165_tree=null;
        Object SPACE166_tree=null;
        RewriteRuleTokenStream stream_ISPARTOF=new RewriteRuleTokenStream(adaptor,"token ISPARTOF");
        RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS");
        RewriteRuleTokenStream stream_ISNOT=new RewriteRuleTokenStream(adaptor,"token ISNOT");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_IS=new RewriteRuleTokenStream(adaptor,"token IS");
        RewriteRuleSubtreeStream stream_oV=new RewriteRuleSubtreeStream(adaptor,"rule oV");
        RewriteRuleSubtreeStream stream_oAP=new RewriteRuleSubtreeStream(adaptor,"rule oAP");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:660:7: ( oAP SPACE ISNOT SPACE oV -> ^( T_ISNT oAP oV ) | oAP SPACE IS SPACE oV -> ^( T_IS oAP oV ) | o1= oAP SPACE EQUALS SPACE o2= oAP -> ^( T_EQUALTO $o1 $o2) | o1= oAP SPACE ISPARTOF SPACE o2= oAP -> ^( T_PART $o1 $o2) )
            int alt24=4;
            alt24 = dfa24.predict(input);
            switch (alt24) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:660:9: oAP SPACE ISNOT SPACE oV
                    {
                    pushFollow(FOLLOW_oAP_in_oVCP11403);
                    oAP151=oAP();

                    state._fsp--;

                    stream_oAP.add(oAP151.getTree());
                    SPACE152=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP11405);  
                    stream_SPACE.add(SPACE152);

                    ISNOT153=(Token)match(input,ISNOT,FOLLOW_ISNOT_in_oVCP11407);  
                    stream_ISNOT.add(ISNOT153);

                    SPACE154=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP11409);  
                    stream_SPACE.add(SPACE154);

                    pushFollow(FOLLOW_oV_in_oVCP11411);
                    oV155=oV();

                    state._fsp--;

                    stream_oV.add(oV155.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 660:34: -> ^( T_ISNT oAP oV )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:660:37: ^( T_ISNT oAP oV )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_ISNT, "T_ISNT"), root_1);

                        adaptor.addChild(root_1, stream_oAP.nextTree());
                        adaptor.addChild(root_1, stream_oV.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:662:4: oAP SPACE IS SPACE oV
                    {
                    pushFollow(FOLLOW_oAP_in_oVCP11427);
                    oAP156=oAP();

                    state._fsp--;

                    stream_oAP.add(oAP156.getTree());
                    SPACE157=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP11429);  
                    stream_SPACE.add(SPACE157);

                    IS158=(Token)match(input,IS,FOLLOW_IS_in_oVCP11431);  
                    stream_IS.add(IS158);

                    SPACE159=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP11433);  
                    stream_SPACE.add(SPACE159);

                    pushFollow(FOLLOW_oV_in_oVCP11435);
                    oV160=oV();

                    state._fsp--;

                    stream_oV.add(oV160.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 662:27: -> ^( T_IS oAP oV )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:662:30: ^( T_IS oAP oV )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_IS, "T_IS"), root_1);

                        adaptor.addChild(root_1, stream_oAP.nextTree());
                        adaptor.addChild(root_1, stream_oV.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:664:4: o1= oAP SPACE EQUALS SPACE o2= oAP
                    {
                    pushFollow(FOLLOW_oAP_in_oVCP11454);
                    o1=oAP();

                    state._fsp--;

                    stream_oAP.add(o1.getTree());
                    SPACE161=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP11456);  
                    stream_SPACE.add(SPACE161);

                    EQUALS162=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_oVCP11458);  
                    stream_EQUALS.add(EQUALS162);

                    SPACE163=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP11460);  
                    stream_SPACE.add(SPACE163);

                    pushFollow(FOLLOW_oAP_in_oVCP11464);
                    o2=oAP();

                    state._fsp--;

                    stream_oAP.add(o2.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 664:38: -> ^( T_EQUALTO $o1 $o2)
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:664:41: ^( T_EQUALTO $o1 $o2)
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_EQUALTO, "T_EQUALTO"), root_1);

                        adaptor.addChild(root_1, stream_o1.nextTree());
                        adaptor.addChild(root_1, stream_o2.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 4 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:666:4: o1= oAP SPACE ISPARTOF SPACE o2= oAP
                    {
                    pushFollow(FOLLOW_oAP_in_oVCP11485);
                    o1=oAP();

                    state._fsp--;

                    stream_oAP.add(o1.getTree());
                    SPACE164=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP11487);  
                    stream_SPACE.add(SPACE164);

                    ISPARTOF165=(Token)match(input,ISPARTOF,FOLLOW_ISPARTOF_in_oVCP11489);  
                    stream_ISPARTOF.add(ISPARTOF165);

                    SPACE166=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVCP11491);  
                    stream_SPACE.add(SPACE166);

                    pushFollow(FOLLOW_oAP_in_oVCP11495);
                    o2=oAP();

                    state._fsp--;

                    stream_oAP.add(o2.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 666:40: -> ^( T_PART $o1 $o2)
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:666:43: ^( T_PART $o1 $o2)
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_PART, "T_PART"), root_1);

                        adaptor.addChild(root_1, stream_o1.nextTree());
                        adaptor.addChild(root_1, stream_o2.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oVCP1");
            		else 
            			ex.append("rule", ",oVCP1");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oVCP1"

    public static class oVHSP_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oVHSP"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:1: oVHSP : oVHSP1 ( SPACE ( AND | OR ) SPACE oVHSP1 )* -> ^( OVHSP ( oVHSP1 )+ ) ;
    public final CGParser.oVHSP_return oVHSP() throws RecognitionException {
        CGParser.oVHSP_return retval = new CGParser.oVHSP_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE168=null;
        Token AND169=null;
        Token OR170=null;
        Token SPACE171=null;
        CGParser.oVHSP1_return oVHSP1167 = null;

        CGParser.oVHSP1_return oVHSP1172 = null;


        Object SPACE168_tree=null;
        Object AND169_tree=null;
        Object OR170_tree=null;
        Object SPACE171_tree=null;
        RewriteRuleTokenStream stream_AND=new RewriteRuleTokenStream(adaptor,"token AND");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_OR=new RewriteRuleTokenStream(adaptor,"token OR");
        RewriteRuleSubtreeStream stream_oVHSP1=new RewriteRuleSubtreeStream(adaptor,"rule oVHSP1");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:7: ( oVHSP1 ( SPACE ( AND | OR ) SPACE oVHSP1 )* -> ^( OVHSP ( oVHSP1 )+ ) )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:9: oVHSP1 ( SPACE ( AND | OR ) SPACE oVHSP1 )*
            {
            pushFollow(FOLLOW_oVHSP1_in_oVHSP1525);
            oVHSP1167=oVHSP1();

            state._fsp--;

            stream_oVHSP1.add(oVHSP1167.getTree());
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:16: ( SPACE ( AND | OR ) SPACE oVHSP1 )*
            loop26:
            do {
                int alt26=2;
                int LA26_0 = input.LA(1);

                if ( (LA26_0==SPACE) ) {
                    int LA26_1 = input.LA(2);

                    if ( ((LA26_1>=AND && LA26_1<=OR)) ) {
                        alt26=1;
                    }


                }


                switch (alt26) {
            	case 1 :
            	    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:17: SPACE ( AND | OR ) SPACE oVHSP1
            	    {
            	    SPACE168=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP1528);  
            	    stream_SPACE.add(SPACE168);

            	    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:22: ( AND | OR )
            	    int alt25=2;
            	    int LA25_0 = input.LA(1);

            	    if ( (LA25_0==AND) ) {
            	        alt25=1;
            	    }
            	    else if ( (LA25_0==OR) ) {
            	        alt25=2;
            	    }
            	    else {
            	        NoViableAltException nvae =
            	            new NoViableAltException("", 25, 0, input);

            	        throw nvae;
            	    }
            	    switch (alt25) {
            	        case 1 :
            	            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:23: AND
            	            {
            	            AND169=(Token)match(input,AND,FOLLOW_AND_in_oVHSP1530);  
            	            stream_AND.add(AND169);


            	            }
            	            break;
            	        case 2 :
            	            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:27: OR
            	            {
            	            OR170=(Token)match(input,OR,FOLLOW_OR_in_oVHSP1532);  
            	            stream_OR.add(OR170);


            	            }
            	            break;

            	    }

            	    SPACE171=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP1535);  
            	    stream_SPACE.add(SPACE171);

            	    pushFollow(FOLLOW_oVHSP1_in_oVHSP1537);
            	    oVHSP1172=oVHSP1();

            	    state._fsp--;

            	    stream_oVHSP1.add(oVHSP1172.getTree());

            	    }
            	    break;

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



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

            root_0 = (Object)adaptor.nil();
            // 684:46: -> ^( OVHSP ( oVHSP1 )+ )
            {
                // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:684:49: ^( OVHSP ( oVHSP1 )+ )
                {
                Object root_1 = (Object)adaptor.nil();
                root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OVHSP, "OVHSP"), root_1);

                if ( !(stream_oVHSP1.hasNext()) ) {
                    throw new RewriteEarlyExitException();
                }
                while ( stream_oVHSP1.hasNext() ) {
                    adaptor.addChild(root_1, stream_oVHSP1.nextTree());

                }
                stream_oVHSP1.reset();

                adaptor.addChild(root_0, root_1);
                }

            }

            retval.tree = root_0;
            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oVHSP");
            		else 
            			ex.append("rule", ",ovHSP");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oVHSP"

    public static class oVHSP1_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oVHSP1"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:702:1: oVHSP1 : ( oA SPACE NOTEQUALS SPACE oV -> ^( T_ISNT oA oV ) | oA SPACE AS SPACE oV -> ^( T_IS oA oV ) | oA SPACE EQUALS SPACE oV -> ^( T_EQUALS oA oV ) | o1= oA SPACE ASPARTOF SPACE o2= oA SPACE OF SPACE oC -> ^( T_PART $o1 ^( OAP $o2 oC ) ) );
    public final CGParser.oVHSP1_return oVHSP1() throws RecognitionException {
        CGParser.oVHSP1_return retval = new CGParser.oVHSP1_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token SPACE174=null;
        Token NOTEQUALS175=null;
        Token SPACE176=null;
        Token SPACE179=null;
        Token AS180=null;
        Token SPACE181=null;
        Token SPACE184=null;
        Token EQUALS185=null;
        Token SPACE186=null;
        Token SPACE188=null;
        Token ASPARTOF189=null;
        Token SPACE190=null;
        Token SPACE191=null;
        Token OF192=null;
        Token SPACE193=null;
        CGParser.oA_return o1 = null;

        CGParser.oA_return o2 = null;

        CGParser.oA_return oA173 = null;

        CGParser.oV_return oV177 = null;

        CGParser.oA_return oA178 = null;

        CGParser.oV_return oV182 = null;

        CGParser.oA_return oA183 = null;

        CGParser.oV_return oV187 = null;

        CGParser.oC_return oC194 = null;


        Object SPACE174_tree=null;
        Object NOTEQUALS175_tree=null;
        Object SPACE176_tree=null;
        Object SPACE179_tree=null;
        Object AS180_tree=null;
        Object SPACE181_tree=null;
        Object SPACE184_tree=null;
        Object EQUALS185_tree=null;
        Object SPACE186_tree=null;
        Object SPACE188_tree=null;
        Object ASPARTOF189_tree=null;
        Object SPACE190_tree=null;
        Object SPACE191_tree=null;
        Object OF192_tree=null;
        Object SPACE193_tree=null;
        RewriteRuleTokenStream stream_AS=new RewriteRuleTokenStream(adaptor,"token AS");
        RewriteRuleTokenStream stream_NOTEQUALS=new RewriteRuleTokenStream(adaptor,"token NOTEQUALS");
        RewriteRuleTokenStream stream_EQUALS=new RewriteRuleTokenStream(adaptor,"token EQUALS");
        RewriteRuleTokenStream stream_OF=new RewriteRuleTokenStream(adaptor,"token OF");
        RewriteRuleTokenStream stream_SPACE=new RewriteRuleTokenStream(adaptor,"token SPACE");
        RewriteRuleTokenStream stream_ASPARTOF=new RewriteRuleTokenStream(adaptor,"token ASPARTOF");
        RewriteRuleSubtreeStream stream_oV=new RewriteRuleSubtreeStream(adaptor,"rule oV");
        RewriteRuleSubtreeStream stream_oA=new RewriteRuleSubtreeStream(adaptor,"rule oA");
        RewriteRuleSubtreeStream stream_oC=new RewriteRuleSubtreeStream(adaptor,"rule oC");
        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:702:8: ( oA SPACE NOTEQUALS SPACE oV -> ^( T_ISNT oA oV ) | oA SPACE AS SPACE oV -> ^( T_IS oA oV ) | oA SPACE EQUALS SPACE oV -> ^( T_EQUALS oA oV ) | o1= oA SPACE ASPARTOF SPACE o2= oA SPACE OF SPACE oC -> ^( T_PART $o1 ^( OAP $o2 oC ) ) )
            int alt27=4;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==ALPHANUM) ) {
                int LA27_1 = input.LA(2);

                if ( (LA27_1==SPACE) ) {
                    switch ( input.LA(3) ) {
                    case EQUALS:
                        {
                        alt27=3;
                        }
                        break;
                    case AS:
                        {
                        alt27=2;
                        }
                        break;
                    case ASPARTOF:
                        {
                        alt27=4;
                        }
                        break;
                    case NOTEQUALS:
                        {
                        alt27=1;
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("", 27, 2, input);

                        throw nvae;
                    }

                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 27, 1, input);

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

                throw nvae;
            }
            switch (alt27) {
                case 1 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:702:10: oA SPACE NOTEQUALS SPACE oV
                    {
                    pushFollow(FOLLOW_oA_in_oVHSP11566);
                    oA173=oA();

                    state._fsp--;

                    stream_oA.add(oA173.getTree());
                    SPACE174=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11568);  
                    stream_SPACE.add(SPACE174);

                    NOTEQUALS175=(Token)match(input,NOTEQUALS,FOLLOW_NOTEQUALS_in_oVHSP11570);  
                    stream_NOTEQUALS.add(NOTEQUALS175);

                    SPACE176=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11572);  
                    stream_SPACE.add(SPACE176);

                    pushFollow(FOLLOW_oV_in_oVHSP11574);
                    oV177=oV();

                    state._fsp--;

                    stream_oV.add(oV177.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 702:38: -> ^( T_ISNT oA oV )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:702:41: ^( T_ISNT oA oV )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_ISNT, "T_ISNT"), root_1);

                        adaptor.addChild(root_1, stream_oA.nextTree());
                        adaptor.addChild(root_1, stream_oV.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 2 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:704:4: oA SPACE AS SPACE oV
                    {
                    pushFollow(FOLLOW_oA_in_oVHSP11590);
                    oA178=oA();

                    state._fsp--;

                    stream_oA.add(oA178.getTree());
                    SPACE179=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11592);  
                    stream_SPACE.add(SPACE179);

                    AS180=(Token)match(input,AS,FOLLOW_AS_in_oVHSP11594);  
                    stream_AS.add(AS180);

                    SPACE181=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11596);  
                    stream_SPACE.add(SPACE181);

                    pushFollow(FOLLOW_oV_in_oVHSP11598);
                    oV182=oV();

                    state._fsp--;

                    stream_oV.add(oV182.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 704:26: -> ^( T_IS oA oV )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:704:29: ^( T_IS oA oV )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_IS, "T_IS"), root_1);

                        adaptor.addChild(root_1, stream_oA.nextTree());
                        adaptor.addChild(root_1, stream_oV.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 3 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:706:4: oA SPACE EQUALS SPACE oV
                    {
                    pushFollow(FOLLOW_oA_in_oVHSP11616);
                    oA183=oA();

                    state._fsp--;

                    stream_oA.add(oA183.getTree());
                    SPACE184=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11618);  
                    stream_SPACE.add(SPACE184);

                    EQUALS185=(Token)match(input,EQUALS,FOLLOW_EQUALS_in_oVHSP11620);  
                    stream_EQUALS.add(EQUALS185);

                    SPACE186=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11622);  
                    stream_SPACE.add(SPACE186);

                    pushFollow(FOLLOW_oV_in_oVHSP11624);
                    oV187=oV();

                    state._fsp--;

                    stream_oV.add(oV187.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 706:30: -> ^( T_EQUALS oA oV )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:706:33: ^( T_EQUALS oA oV )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_EQUALS, "T_EQUALS"), root_1);

                        adaptor.addChild(root_1, stream_oA.nextTree());
                        adaptor.addChild(root_1, stream_oV.nextTree());

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;
                case 4 :
                    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:708:4: o1= oA SPACE ASPARTOF SPACE o2= oA SPACE OF SPACE oC
                    {
                    pushFollow(FOLLOW_oA_in_oVHSP11643);
                    o1=oA();

                    state._fsp--;

                    stream_oA.add(o1.getTree());
                    SPACE188=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11645);  
                    stream_SPACE.add(SPACE188);

                    ASPARTOF189=(Token)match(input,ASPARTOF,FOLLOW_ASPARTOF_in_oVHSP11647);  
                    stream_ASPARTOF.add(ASPARTOF189);

                    SPACE190=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11649);  
                    stream_SPACE.add(SPACE190);

                    pushFollow(FOLLOW_oA_in_oVHSP11653);
                    o2=oA();

                    state._fsp--;

                    stream_oA.add(o2.getTree());
                    SPACE191=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11655);  
                    stream_SPACE.add(SPACE191);

                    OF192=(Token)match(input,OF,FOLLOW_OF_in_oVHSP11657);  
                    stream_OF.add(OF192);

                    SPACE193=(Token)match(input,SPACE,FOLLOW_SPACE_in_oVHSP11659);  
                    stream_SPACE.add(SPACE193);

                    pushFollow(FOLLOW_oC_in_oVHSP11661);
                    oC194=oC();

                    state._fsp--;

                    stream_oC.add(oC194.getTree());


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

                    root_0 = (Object)adaptor.nil();
                    // 708:56: -> ^( T_PART $o1 ^( OAP $o2 oC ) )
                    {
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:708:59: ^( T_PART $o1 ^( OAP $o2 oC ) )
                        {
                        Object root_1 = (Object)adaptor.nil();
                        root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(T_PART, "T_PART"), root_1);

                        adaptor.addChild(root_1, stream_o1.nextTree());
                        // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:708:72: ^( OAP $o2 oC )
                        {
                        Object root_2 = (Object)adaptor.nil();
                        root_2 = (Object)adaptor.becomeRoot((Object)adaptor.create(OAP, "OAP"), root_2);

                        adaptor.addChild(root_2, stream_o2.nextTree());
                        adaptor.addChild(root_2, stream_oC.nextTree());

                        adaptor.addChild(root_1, root_2);
                        }

                        adaptor.addChild(root_0, root_1);
                        }

                    }

                    retval.tree = root_0;
                    }
                    break;

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oVHSP1");
            		else 
            			ex.append("rule", ",oVHSP1");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oVHSP1"

    public static class oV_return extends ParserRuleReturnScope {
        Object tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "oV"
    // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:727:1: oV : ( ALPHANUM | NUMBER );
    public final CGParser.oV_return oV() throws RecognitionException {
        CGParser.oV_return retval = new CGParser.oV_return();
        retval.start = input.LT(1);

        Object root_0 = null;

        Token set195=null;

        Object set195_tree=null;

        try {
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:727:4: ( ALPHANUM | NUMBER )
            // /media/Personal Documents/MS Project/Project Cogito/CG/CG.g:
            {
            root_0 = (Object)adaptor.nil();

            set195=(Token)input.LT(1);
            if ( (input.LA(1)>=NUMBER && input.LA(1)<=ALPHANUM) ) {
                input.consume();
                adaptor.addChild(root_0, (Object)adaptor.create(set195));
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

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

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

        }
        catch (RecognitionException re) {

            		ExtendedRecognitionException ex;
            		if (re instanceof ExtendedRecognitionException) 
            			ex = (ExtendedRecognitionException) re;
            		else 
            			ex = new ExtendedRecognitionException(re);

            		if (!ex.contains("rule"))
            			ex.add("rule", "oV");
            		else 
            			ex.append("rule", ",oV");
                        
            		re = ex;
            		throw re;
            	
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end "oV"

    // Delegated rules


    protected DFA11 dfa11 = new DFA11(this);
    protected DFA12 dfa12 = new DFA12(this);
    protected DFA15 dfa15 = new DFA15(this);
    protected DFA16 dfa16 = new DFA16(this);
    protected DFA24 dfa24 = new DFA24(this);
    static final String DFA11_eotS =
        "\12\uffff";
    static final String DFA11_eofS =
        "\1\uffff\1\3\3\uffff\1\7\4\uffff";
    static final String DFA11_minS =
        "\1\53\1\41\1\45\2\uffff\1\41\1\45\1\uffff\1\41\1\53";
    static final String DFA11_maxS =
        "\1\53\1\43\1\55\2\uffff\1\43\1\56\1\uffff\1\41\1\55";
    static final String DFA11_acceptS =
        "\3\uffff\1\1\1\3\2\uffff\1\2\2\uffff";
    static final String DFA11_specialS =
        "\12\uffff}>";
    static final String[] DFA11_transitionS = {
            "\1\1",
            "\1\2\1\uffff\1\3",
            "\2\3\1\uffff\2\3\1\uffff\1\5\2\4",
            "",
            "",
            "\1\6\1\uffff\1\7",
            "\2\7\1\uffff\2\7\4\uffff\1\10",
            "",
            "\1\11",
            "\1\7\2\4"
    };

    static final short[] DFA11_eot = DFA.unpackEncodedString(DFA11_eotS);
    static final short[] DFA11_eof = DFA.unpackEncodedString(DFA11_eofS);
    static final char[] DFA11_min = DFA.unpackEncodedStringToUnsignedChars(DFA11_minS);
    static final char[] DFA11_max = DFA.unpackEncodedStringToUnsignedChars(DFA11_maxS);
    static final short[] DFA11_accept = DFA.unpackEncodedString(DFA11_acceptS);
    static final short[] DFA11_special = DFA.unpackEncodedString(DFA11_specialS);
    static final short[][] DFA11_transition;

    static {
        int numStates = DFA11_transitionS.length;
        DFA11_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA11_transition[i] = DFA.unpackEncodedString(DFA11_transitionS[i]);
        }
    }

    class DFA11 extends DFA {

        public DFA11(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 11;
            this.eot = DFA11_eot;
            this.eof = DFA11_eof;
            this.min = DFA11_min;
            this.max = DFA11_max;
            this.accept = DFA11_accept;
            this.special = DFA11_special;
            this.transition = DFA11_transition;
        }
        public String getDescription() {
            return "257:1: action : ( uA ( ext )? -> uA ( ^( EXT ext ) )? | uA ( SPACE wOP ) ( ext )? -> uA ^( OP wOP ) ( ^( EXT ext ) )? | cxaction );";
        }
    }
    static final String DFA12_eotS =
        "\31\uffff";
    static final String DFA12_eofS =
        "\11\uffff\2\15\12\uffff\2\15\2\uffff";
    static final String DFA12_minS =
        "\1\53\1\41\1\53\3\41\2\53\1\56\3\41\1\45\1\uffff\1\45\1\54\1\uffff"+
        "\2\41\2\53\2\41\2\45";
    static final String DFA12_maxS =
        "\1\53\1\41\1\55\3\41\2\53\1\56\2\43\1\41\1\57\1\uffff\1\57\1\55"+
        "\1\uffff\2\41\2\53\2\43\2\57";
    static final String DFA12_acceptS =
        "\15\uffff\1\2\2\uffff\1\1\10\uffff";
    static final String DFA12_specialS =
        "\31\uffff}>";
    static final String[] DFA12_transitionS = {
            "\1\1",
            "\1\2",
            "\1\5\1\3\1\4",
            "\1\6",
            "\1\7",
            "\1\10",
            "\1\11",
            "\1\12",
            "\1\13",
            "\1\14\1\uffff\1\15",
            "\1\16\1\uffff\1\15",
            "\1\17",
            "\2\15\1\uffff\2\15\5\uffff\1\20",
            "",
            "\2\15\1\uffff\2\15\5\uffff\1\20",
            "\1\22\1\21",
            "",
            "\1\23",
            "\1\24",
            "\1\25",
            "\1\26",
            "\1\27\1\uffff\1\15",
            "\1\30\1\uffff\1\15",
            "\2\15\1\uffff\2\15\5\uffff\1\20",
            "\2\15\1\uffff\2\15\5\uffff\1\20"
    };

    static final short[] DFA12_eot = DFA.unpackEncodedString(DFA12_eotS);
    static final short[] DFA12_eof = DFA.unpackEncodedString(DFA12_eofS);
    static final char[] DFA12_min = DFA.unpackEncodedStringToUnsignedChars(DFA12_minS);
    static final char[] DFA12_max = DFA.unpackEncodedStringToUnsignedChars(DFA12_maxS);
    static final short[] DFA12_accept = DFA.unpackEncodedString(DFA12_acceptS);
    static final short[] DFA12_special = DFA.unpackEncodedString(DFA12_specialS);
    static final short[][] DFA12_transition;

    static {
        int numStates = DFA12_transitionS.length;
        DFA12_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA12_transition[i] = DFA.unpackEncodedString(DFA12_transitionS[i]);
        }
    }

    class DFA12 extends DFA {

        public DFA12(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 12;
            this.eot = DFA12_eot;
            this.eof = DFA12_eof;
            this.min = DFA12_min;
            this.max = DFA12_max;
            this.accept = DFA12_accept;
            this.special = DFA12_special;
            this.transition = DFA12_transition;
        }
        public String getDescription() {
            return "279:1: cxaction : ( xaction | wxaction );";
        }
    }
    static final String DFA15_eotS =
        "\16\uffff";
    static final String DFA15_eofS =
        "\12\uffff\2\15\2\uffff";
    static final String DFA15_minS =
        "\1\53\1\41\1\56\1\41\1\53\2\41\1\uffff\2\53\2\41\2\uffff";
    static final String DFA15_maxS =
        "\1\53\1\41\1\56\1\41\1\55\2\41\1\uffff\2\53\2\43\2\uffff";
    static final String DFA15_acceptS =
        "\7\uffff\1\1\4\uffff\1\2\1\3";
    static final String DFA15_specialS =
        "\16\uffff}>";
    static final String[] DFA15_transitionS = {
            "\1\1",
            "\1\2",
            "\1\3",
            "\1\4",
            "\1\7\1\5\1\6",
            "\1\10",
            "\1\11",
            "",
            "\1\12",
            "\1\13",
            "\1\14\1\uffff\1\15",
            "\1\14\1\uffff\1\15",
            "",
            ""
    };

    static final short[] DFA15_eot = DFA.unpackEncodedString(DFA15_eotS);
    static final short[] DFA15_eof = DFA.unpackEncodedString(DFA15_eofS);
    static final char[] DFA15_min = DFA.unpackEncodedStringToUnsignedChars(DFA15_minS);
    static final char[] DFA15_max = DFA.unpackEncodedStringToUnsignedChars(DFA15_maxS);
    static final short[] DFA15_accept = DFA.unpackEncodedString(DFA15_acceptS);
    static final short[] DFA15_special = DFA.unpackEncodedString(DFA15_specialS);
    static final short[][] DFA15_transition;

    static {
        int numStates = DFA15_transitionS.length;
        DFA15_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA15_transition[i] = DFA.unpackEncodedString(DFA15_transitionS[i]);
        }
    }

    class DFA15 extends DFA {

        public DFA15(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 15;
            this.eot = DFA15_eot;
            this.eof = DFA15_eof;
            this.min = DFA15_min;
            this.max = DFA15_max;
            this.accept = DFA15_accept;
            this.special = DFA15_special;
            this.transition = DFA15_transition;
        }
        public String getDescription() {
            return "391:1: pseudoOP : ( oAP | coAXP | oAXP );";
        }
    }
    static final String DFA16_eotS =
        "\12\uffff";
    static final String DFA16_eofS =
        "\1\uffff\1\3\4\uffff\1\10\3\uffff";
    static final String DFA16_minS =
        "\1\53\1\41\1\45\1\uffff\1\41\1\53\1\41\1\45\2\uffff";
    static final String DFA16_maxS =
        "\1\53\1\43\1\56\1\uffff\1\41\1\53\1\43\1\61\2\uffff";
    static final String DFA16_acceptS =
        "\3\uffff\1\1\4\uffff\1\2\1\3";
    static final String DFA16_specialS =
        "\12\uffff}>";
    static final String[] DFA16_transitionS = {
            "\1\1",
            "\1\2\1\uffff\1\3",
            "\2\3\1\uffff\2\3\4\uffff\1\4",
            "",
            "\1\5",
            "\1\6",
            "\1\7\1\uffff\1\10",
            "\2\10\1\uffff\2\10\6\uffff\2\11",
            "",
            ""
    };

    static final short[] DFA16_eot = DFA.unpackEncodedString(DFA16_eotS);
    static final short[] DFA16_eof = DFA.unpackEncodedString(DFA16_eofS);
    static final char[] DFA16_min = DFA.unpackEncodedStringToUnsignedChars(DFA16_minS);
    static final char[] DFA16_max = DFA.unpackEncodedStringToUnsignedChars(DFA16_maxS);
    static final short[] DFA16_accept = DFA.unpackEncodedString(DFA16_acceptS);
    static final short[] DFA16_special = DFA.unpackEncodedString(DFA16_specialS);
    static final short[][] DFA16_transition;

    static {
        int numStates = DFA16_transitionS.length;
        DFA16_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA16_transition[i] = DFA.unpackEncodedString(DFA16_transitionS[i]);
        }
    }

    class DFA16 extends DFA {

        public DFA16(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 16;
            this.eot = DFA16_eot;
            this.eof = DFA16_eof;
            this.min = DFA16_min;
            this.max = DFA16_max;
            this.accept = DFA16_accept;
            this.special = DFA16_special;
            this.transition = DFA16_transition;
        }
        public String getDescription() {
            return "411:1: wOP : ( oC | oAP | oVP -> ^( OVP oVP ) );";
        }
    }
    static final String DFA24_eotS =
        "\13\uffff";
    static final String DFA24_eofS =
        "\13\uffff";
    static final String DFA24_minS =
        "\1\53\1\41\1\56\1\41\1\53\1\41\1\64\4\uffff";
    static final String DFA24_maxS =
        "\1\53\1\41\1\56\1\41\1\53\1\41\1\67\4\uffff";
    static final String DFA24_acceptS =
        "\7\uffff\1\2\1\3\1\4\1\1";
    static final String DFA24_specialS =
        "\13\uffff}>";
    static final String[] DFA24_transitionS = {
            "\1\1",
            "\1\2",
            "\1\3",
            "\1\4",
            "\1\5",
            "\1\6",
            "\1\12\1\7\1\10\1\11",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA24_eot = DFA.unpackEncodedString(DFA24_eotS);
    static final short[] DFA24_eof = DFA.unpackEncodedString(DFA24_eofS);
    static final char[] DFA24_min = DFA.unpackEncodedStringToUnsignedChars(DFA24_minS);
    static final char[] DFA24_max = DFA.unpackEncodedStringToUnsignedChars(DFA24_maxS);
    static final short[] DFA24_accept = DFA.unpackEncodedString(DFA24_acceptS);
    static final short[] DFA24_special = DFA.unpackEncodedString(DFA24_specialS);
    static final short[][] DFA24_transition;

    static {
        int numStates = DFA24_transitionS.length;
        DFA24_transition = new short[numStates][];
        for (int i=0; i<numStates; i++) {
            DFA24_transition[i] = DFA.unpackEncodedString(DFA24_transitionS[i]);
        }
    }

    class DFA24 extends DFA {

        public DFA24(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 24;
            this.eot = DFA24_eot;
            this.eof = DFA24_eof;
            this.min = DFA24_min;
            this.max = DFA24_max;
            this.accept = DFA24_accept;
            this.special = DFA24_special;
            this.transition = DFA24_transition;
        }
        public String getDescription() {
            return "660:1: oVCP1 : ( oAP SPACE ISNOT SPACE oV -> ^( T_ISNT oAP oV ) | oAP SPACE IS SPACE oV -> ^( T_IS oAP oV ) | o1= oAP SPACE EQUALS SPACE o2= oAP -> ^( T_EQUALTO $o1 $o2) | o1= oAP SPACE ISPARTOF SPACE o2= oAP -> ^( T_PART $o1 $o2) );";
        }
    }
 

    public static final BitSet FOLLOW_uAP_in_statement145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cP_in_statement151 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_substat_in_statement153 = new BitSet(new long[]{0x1000080000000000L});
    public static final BitSet FOLLOW_60_in_statement156 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IF_in_cP184 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_cP186 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oVCP_in_cP188 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_cP190 = new BitSet(new long[]{0x0000000400000000L});
    public static final BitSet FOLLOW_THEN_in_cP192 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_NEWLINE_in_cP194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_uAP_in_substat216 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_NEWLINE_in_substat218 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_simpleUAP_in_uAP241 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_compUAP_in_uAP254 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_act_in_compUAP281 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_compUAP283 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_DOESFOLLOWING_in_compUAP285 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_subUAP_in_compUAP287 = new BitSet(new long[]{0x1000080000000000L});
    public static final BitSet FOLLOW_60_in_compUAP290 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_action_in_subUAP315 = new BitSet(new long[]{0x0000000800000000L});
    public static final BitSet FOLLOW_NEWLINE_in_subUAP317 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oC_in_act346 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_act_in_simpleUAP365 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_simpleUAP367 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_action_in_simpleUAP369 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SPACE_in_wext392 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_TILL_in_wext394 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_wext396 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oVCP_in_wext398 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SPACE_in_wext417 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_FOR_in_wext419 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_wext421 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_num_in_wext423 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_wext425 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_AMOUNTOFTIME_in_wext427 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SPACE_in_wext446 = new BitSet(new long[]{0x0000030000000000L});
    public static final BitSet FOLLOW_INTO_in_wext449 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_FROM_in_wext451 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_wext454 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_pseudoOP_in_wext456 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SPACE_in_ext483 = new BitSet(new long[]{0x0000002000000000L});
    public static final BitSet FOLLOW_TILL_in_ext485 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_ext487 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oVCP_in_ext489 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SPACE_in_ext508 = new BitSet(new long[]{0x0000004000000000L});
    public static final BitSet FOLLOW_FOR_in_ext510 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_ext512 = new BitSet(new long[]{0x0000040000000000L});
    public static final BitSet FOLLOW_num_in_ext514 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_ext516 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_AMOUNTOFTIME_in_ext518 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SPACE_in_ext537 = new BitSet(new long[]{0x0000030000000000L});
    public static final BitSet FOLLOW_INTO_in_ext540 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_FROM_in_ext542 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_ext545 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_pseudoOP_in_ext547 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NUMBER_in_num577 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_uA_in_action595 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_ext_in_action598 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_uA_in_action619 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_action622 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_wOP_in_action624 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_ext_in_action628 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cxaction_in_action655 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_xaction_in_cxaction671 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_wxaction_in_cxaction679 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_uA_in_wxaction698 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_wxaction701 = new BitSet(new long[]{0x0000380000000000L});
    public static final BitSet FOLLOW_wxOP_in_wxaction703 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_ext_in_wxaction707 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_uA_in_xaction744 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_xaction747 = new BitSet(new long[]{0x0000380000000000L});
    public static final BitSet FOLLOW_oP_in_xaction749 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_wext_in_xaction753 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALPHANUM_in_oC791 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALPHANUM_in_uA818 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALPHANUM_in_oA835 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAP_in_pseudoOP851 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_coAXP_in_pseudoOP856 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAXP_in_pseudoOP861 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oC_in_wOP878 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAP_in_wOP883 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oVP_in_wOP888 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_allOC_in_wxOP915 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_specOC_in_wxOP920 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAXP_in_wxOP925 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALL_in_allOC943 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_allOC945 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oC_in_allOC947 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SPECIFIC_in_specOC974 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_specOC976 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oC_in_specOC978 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oA_in_oAXP1004 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oAXP1006 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_OF_in_oAXP1008 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oAXP1010 = new BitSet(new long[]{0x0000100000000000L});
    public static final BitSet FOLLOW_allOC_in_oAXP1012 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oA_in_oAXP1027 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oAXP1029 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_OF_in_oAXP1031 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oAXP1033 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_specOC_in_oAXP1035 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_callOC_in_oP1062 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_cspecOC_in_oP1067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_coAXP_in_oP1072 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ALL_in_callOC1091 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_callOC1093 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oC_in_callOC1095 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_callOC1098 = new BitSet(new long[]{0x0000800000000000L});
    public static final BitSet FOLLOW_HAVING_in_callOC1100 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_callOC1102 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oVHSP_in_callOC1104 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_SPECIFIC_in_cspecOC1132 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_cspecOC1134 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oC_in_cspecOC1136 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_cspecOC1139 = new BitSet(new long[]{0x0000800000000000L});
    public static final BitSet FOLLOW_HAVING_in_cspecOC1141 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_cspecOC1143 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oVHSP_in_cspecOC1145 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oA_in_oAP1174 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oAP1176 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_OF_in_oAP1179 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oAP1182 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oC_in_oAP1184 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oA_in_coAXP1212 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_coAXP1214 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_OF_in_coAXP1216 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_coAXP1218 = new BitSet(new long[]{0x0000100000000000L});
    public static final BitSet FOLLOW_callOC_in_coAXP1220 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oA_in_coAXP1235 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_coAXP1237 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_OF_in_coAXP1239 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_coAXP1241 = new BitSet(new long[]{0x0000200000000000L});
    public static final BitSet FOLLOW_cspecOC_in_coAXP1243 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAP_in_oVP1272 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVP1274 = new BitSet(new long[]{0x0001000000000000L});
    public static final BitSet FOLLOW_BY_in_oVP1276 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVP1278 = new BitSet(new long[]{0x00000C0000000000L});
    public static final BitSet FOLLOW_oV_in_oVP1280 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAP_in_oVP1296 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVP1298 = new BitSet(new long[]{0x0002000000000000L});
    public static final BitSet FOLLOW_TO_in_oVP1300 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVP1302 = new BitSet(new long[]{0x00000C0000000000L});
    public static final BitSet FOLLOW_oV_in_oVP1304 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oVCP1_in_oVCP1333 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_SPACE_in_oVCP1336 = new BitSet(new long[]{0x000C000000000000L});
    public static final BitSet FOLLOW_AND_in_oVCP1338 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_OR_in_oVCP1340 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP1342 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oVCP1_in_oVCP1344 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_oVCP1_in_prepostCond1374 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAP_in_oVCP11403 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP11405 = new BitSet(new long[]{0x0010000000000000L});
    public static final BitSet FOLLOW_ISNOT_in_oVCP11407 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP11409 = new BitSet(new long[]{0x00000C0000000000L});
    public static final BitSet FOLLOW_oV_in_oVCP11411 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAP_in_oVCP11427 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP11429 = new BitSet(new long[]{0x0020000000000000L});
    public static final BitSet FOLLOW_IS_in_oVCP11431 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP11433 = new BitSet(new long[]{0x00000C0000000000L});
    public static final BitSet FOLLOW_oV_in_oVCP11435 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAP_in_oVCP11454 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP11456 = new BitSet(new long[]{0x0040000000000000L});
    public static final BitSet FOLLOW_EQUALS_in_oVCP11458 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP11460 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oAP_in_oVCP11464 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oAP_in_oVCP11485 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP11487 = new BitSet(new long[]{0x0080000000000000L});
    public static final BitSet FOLLOW_ISPARTOF_in_oVCP11489 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVCP11491 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oAP_in_oVCP11495 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oVHSP1_in_oVHSP1525 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP1528 = new BitSet(new long[]{0x000C000000000000L});
    public static final BitSet FOLLOW_AND_in_oVHSP1530 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_OR_in_oVHSP1532 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP1535 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oVHSP1_in_oVHSP1537 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_oA_in_oVHSP11566 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11568 = new BitSet(new long[]{0x0100000000000000L});
    public static final BitSet FOLLOW_NOTEQUALS_in_oVHSP11570 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11572 = new BitSet(new long[]{0x00000C0000000000L});
    public static final BitSet FOLLOW_oV_in_oVHSP11574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oA_in_oVHSP11590 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11592 = new BitSet(new long[]{0x0200000000000000L});
    public static final BitSet FOLLOW_AS_in_oVHSP11594 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11596 = new BitSet(new long[]{0x00000C0000000000L});
    public static final BitSet FOLLOW_oV_in_oVHSP11598 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oA_in_oVHSP11616 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11618 = new BitSet(new long[]{0x0040000000000000L});
    public static final BitSet FOLLOW_EQUALS_in_oVHSP11620 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11622 = new BitSet(new long[]{0x00000C0000000000L});
    public static final BitSet FOLLOW_oV_in_oVHSP11624 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_oA_in_oVHSP11643 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11645 = new BitSet(new long[]{0x0400000000000000L});
    public static final BitSet FOLLOW_ASPARTOF_in_oVHSP11647 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11649 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oA_in_oVHSP11653 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11655 = new BitSet(new long[]{0x0000400000000000L});
    public static final BitSet FOLLOW_OF_in_oVHSP11657 = new BitSet(new long[]{0x0000000200000000L});
    public static final BitSet FOLLOW_SPACE_in_oVHSP11659 = new BitSet(new long[]{0x0000080000000000L});
    public static final BitSet FOLLOW_oC_in_oVHSP11661 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_oV0 = new BitSet(new long[]{0x0000000000000002L});

}