Package org.openbel.framework.common.bel.parser

Source Code of org.openbel.framework.common.bel.parser.BELScriptWalker

// $ANTLR 3.3 Nov 30, 2010 12:50:56 BELScriptWalker.g 2014-05-14 13:14:52

    package org.openbel.framework.common.bel.parser;

    import java.text.ParseException;

    import java.text.SimpleDateFormat;
    import java.util.Set;
    import java.util.Map;
    import java.util.HashMap;
    import java.util.LinkedHashMap;
    import java.util.LinkedHashSet;
    import java.util.Arrays;
    import java.util.List;
    import java.util.ArrayList;
    import java.util.Date;

    import org.openbel.bel.model.BELDocument;
    import org.openbel.bel.model.BELDocumentHeader;
    import org.openbel.bel.model.BELAnnotation;
    import org.openbel.bel.model.BELCitation;
    import org.openbel.bel.model.BELEvidence;
    import org.openbel.bel.model.BELAnnotationDefinition;
    import org.openbel.bel.model.BELAnnotationType;
    import org.openbel.bel.model.BELNamespaceDefinition;
    import org.openbel.bel.model.BELDocumentProperty;
    import org.openbel.bel.model.BELStatement;
    import org.openbel.bel.model.BELStatementGroup;
    import org.openbel.bel.model.BELParseErrorException;
    import org.openbel.bel.model.BELParseWarningException;
    import org.openbel.bel.model.BELParseErrorException.DefineAnnotationBeforeUsageException;
    import org.openbel.bel.model.BELParseErrorException.SetDocumentPropertiesFirstException;
    import org.openbel.bel.model.BELParseErrorException.DocumentNameException;
    import org.openbel.bel.model.BELParseErrorException.DocumentDescriptionException;
    import org.openbel.bel.model.BELParseErrorException.DocumentVersionException;
    import org.openbel.bel.model.BELParseErrorException.UnsetDocumentPropertiesException;
    import org.openbel.bel.model.BELParseWarningException.UnsetUndefinedAnnotationException;
    import org.openbel.bel.model.BELParseErrorException.NamespaceUndefinedException;
    import org.openbel.bel.model.BELParseErrorException.InvalidCitationException;
    import org.openbel.bel.model.BELParseErrorException.InvalidEvidenceException;
    import org.openbel.framework.common.enums.FunctionEnum;


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


public class BELScriptWalker extends TreeParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "NEWLINE", "DOCUMENT_COMMENT", "DOCUMENT_KEYWORD", "OBJECT_IDENT", "VALUE_LIST", "STATEMENT_GROUP_KEYWORD", "IDENT_LIST", "QUOTED_VALUE", "OPEN_PAREN", "CLOSE_PAREN", "STATEMENT_COMMENT", "NS_PREFIX", "COMMA", "LETTER", "DIGIT", "EscapeSequence", "WS", "UnicodeEscape", "OctalEscape", "HexDigit", "'SET'", "'='", "'UNSET'", "'DEFINE'", "'DEFAULT'", "'NAMESPACE'", "'AS'", "'URL'", "'ANNOTATION'", "'PATTERN'", "'LIST'", "'Authors'", "'ContactInfo'", "'Copyright'", "'Description'", "'Disclaimer'", "'Licenses'", "'Name'", "'Version'", "','", "'proteinAbundance'", "'p'", "'rnaAbundance'", "'r'", "'abundance'", "'a'", "'microRNAAbundance'", "'m'", "'geneAbundance'", "'g'", "'biologicalProcess'", "'bp'", "'pathology'", "'path'", "'complexAbundance'", "'complex'", "'translocation'", "'tloc'", "'cellSecretion'", "'sec'", "'cellSurfaceExpression'", "'surf'", "'reaction'", "'rxn'", "'compositeAbundance'", "'composite'", "'fusion'", "'fus'", "'degradation'", "'deg'", "'molecularActivity'", "'act'", "'catalyticActivity'", "'cat'", "'kinaseActivity'", "'kin'", "'phosphataseActivity'", "'phos'", "'peptidaseActivity'", "'pep'", "'ribosylationActivity'", "'ribo'", "'transcriptionalActivity'", "'tscript'", "'transportActivity'", "'tport'", "'gtpBoundActivity'", "'gtp'", "'chaperoneActivity'", "'chap'", "'proteinModification'", "'pmod'", "'substitution'", "'sub'", "'truncation'", "'trunc'", "'reactants'", "'products'", "'list'", "'increases'", "'->'", "'decreases'", "'-|'", "'directlyIncreases'", "'=>'", "'directlyDecreases'", "'=|'", "'causesNoChange'", "'positiveCorrelation'", "'negativeCorrelation'", "'translatedTo'", "'>>'", "'transcribedTo'", "':>'", "'isA'", "'subProcessOf'", "'rateLimitingStepOf'", "'biomarkerFor'", "'prognosticBiomarkerFor'", "'orthologous'", "'analogous'", "'association'", "'--'", "'hasMembers'", "'hasComponents'", "'hasMember'", "'hasComponent'"
    };
    public static final int EOF=-1;
    public static final int T__24=24;
    public static final int T__25=25;
    public static final int T__26=26;
    public static final int T__27=27;
    public static final int T__28=28;
    public static final int T__29=29;
    public static final int T__30=30;
    public static final int T__31=31;
    public static final int T__32=32;
    public static final int T__33=33;
    public static final int T__34=34;
    public static final int T__35=35;
    public static final int T__36=36;
    public static final int T__37=37;
    public static final int T__38=38;
    public static final int T__39=39;
    public static final int T__40=40;
    public static final int T__41=41;
    public static final int T__42=42;
    public static final int T__43=43;
    public static final int T__44=44;
    public static final int T__45=45;
    public static final int T__46=46;
    public static final int T__47=47;
    public static final int T__48=48;
    public static final int T__49=49;
    public static final int T__50=50;
    public static final int T__51=51;
    public static final int T__52=52;
    public static final int T__53=53;
    public static final int T__54=54;
    public static final int T__55=55;
    public static final int T__56=56;
    public static final int T__57=57;
    public static final int T__58=58;
    public static final int T__59=59;
    public static final int T__60=60;
    public static final int T__61=61;
    public static final int T__62=62;
    public static final int T__63=63;
    public static final int T__64=64;
    public static final int T__65=65;
    public static final int T__66=66;
    public static final int T__67=67;
    public static final int T__68=68;
    public static final int T__69=69;
    public static final int T__70=70;
    public static final int T__71=71;
    public static final int T__72=72;
    public static final int T__73=73;
    public static final int T__74=74;
    public static final int T__75=75;
    public static final int T__76=76;
    public static final int T__77=77;
    public static final int T__78=78;
    public static final int T__79=79;
    public static final int T__80=80;
    public static final int T__81=81;
    public static final int T__82=82;
    public static final int T__83=83;
    public static final int T__84=84;
    public static final int T__85=85;
    public static final int T__86=86;
    public static final int T__87=87;
    public static final int T__88=88;
    public static final int T__89=89;
    public static final int T__90=90;
    public static final int T__91=91;
    public static final int T__92=92;
    public static final int T__93=93;
    public static final int T__94=94;
    public static final int T__95=95;
    public static final int T__96=96;
    public static final int T__97=97;
    public static final int T__98=98;
    public static final int T__99=99;
    public static final int T__100=100;
    public static final int T__101=101;
    public static final int T__102=102;
    public static final int T__103=103;
    public static final int T__104=104;
    public static final int T__105=105;
    public static final int T__106=106;
    public static final int T__107=107;
    public static final int T__108=108;
    public static final int T__109=109;
    public static final int T__110=110;
    public static final int T__111=111;
    public static final int T__112=112;
    public static final int T__113=113;
    public static final int T__114=114;
    public static final int T__115=115;
    public static final int T__116=116;
    public static final int T__117=117;
    public static final int T__118=118;
    public static final int T__119=119;
    public static final int T__120=120;
    public static final int T__121=121;
    public static final int T__122=122;
    public static final int T__123=123;
    public static final int T__124=124;
    public static final int T__125=125;
    public static final int T__126=126;
    public static final int T__127=127;
    public static final int T__128=128;
    public static final int T__129=129;
    public static final int T__130=130;
    public static final int NEWLINE=4;
    public static final int DOCUMENT_COMMENT=5;
    public static final int DOCUMENT_KEYWORD=6;
    public static final int OBJECT_IDENT=7;
    public static final int VALUE_LIST=8;
    public static final int STATEMENT_GROUP_KEYWORD=9;
    public static final int IDENT_LIST=10;
    public static final int QUOTED_VALUE=11;
    public static final int OPEN_PAREN=12;
    public static final int CLOSE_PAREN=13;
    public static final int STATEMENT_COMMENT=14;
    public static final int NS_PREFIX=15;
    public static final int COMMA=16;
    public static final int LETTER=17;
    public static final int DIGIT=18;
    public static final int EscapeSequence=19;
    public static final int WS=20;
    public static final int UnicodeEscape=21;
    public static final int OctalEscape=22;
    public static final int HexDigit=23;

    // delegates
    // delegators


        public BELScriptWalker(TreeNodeStream input) {
            this(input, new RecognizerSharedState());
        }
        public BELScriptWalker(TreeNodeStream 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 BELScriptWalker.tokenNames; }
    public String getGrammarFileName() { return "BELScriptWalker.g"; }


        private final Map<BELDocumentProperty, String> docprop = new HashMap<BELDocumentProperty, String>();
        private int lastDocumentPropertyLocation = 0;
        private final Set<BELAnnotationDefinition> adlist = new LinkedHashSet<BELAnnotationDefinition>();
        private final Map<String, BELAnnotationDefinition> definedAnnotations = new LinkedHashMap<String, BELAnnotationDefinition>();
        private final Map<String, BELNamespaceDefinition> definedNamespaces = new LinkedHashMap<String, BELNamespaceDefinition>();
        private final Set<BELNamespaceDefinition> nslist = new LinkedHashSet<BELNamespaceDefinition>();

        private BELStatementGroup activeStatementGroup;
        private BELStatementGroup documentStatementGroup = new BELStatementGroup();
        private List<BELStatementGroup> statementGroups = new ArrayList<BELStatementGroup>();

        private final Map<String, BELAnnotation> sgAnnotationContext = new LinkedHashMap<String, BELAnnotation>();
        private final Map<String, BELAnnotation> annotationContext = new LinkedHashMap<String, BELAnnotation>();
        private BELCitation citationContext;
        private BELEvidence evidenceContext;

        private final List<BELStatement> stmtlist = new ArrayList<BELStatement>();
        private final List<BELParseErrorException> syntaxErrors = new ArrayList<BELParseErrorException>();
        private final List<BELParseWarningException> syntaxWarnings = new ArrayList<BELParseWarningException>();

        private static final SimpleDateFormat iso8601DateFormat = new SimpleDateFormat("yyyy-MM-dd");

        public List<BELParseErrorException> getSyntaxErrors() {
            return syntaxErrors;
        }

        public List<BELParseWarningException> getSyntaxWarnings() {
            return syntaxWarnings;
        }

        @Override
        public void emitErrorMessage(String msg) {
        }

        public void addError(BELParseErrorException e) {
            syntaxErrors.add(e);
        }

        public void addWarning(BELParseWarningException e) {
            syntaxWarnings.add(e);
        }


    public static class document_return extends TreeRuleReturnScope {
        public BELDocument doc;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "document"
    // BELScriptWalker.g:96:1: document returns [BELDocument doc] : ( NEWLINE | DOCUMENT_COMMENT | record )+ EOF ;
    public final BELScriptWalker.document_return document() throws RecognitionException {
        BELScriptWalker.document_return retval = new BELScriptWalker.document_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree NEWLINE1=null;
        CommonTree DOCUMENT_COMMENT2=null;
        CommonTree EOF4=null;
        BELScriptWalker.record_return record3 = null;


        CommonTree NEWLINE1_tree=null;
        CommonTree DOCUMENT_COMMENT2_tree=null;
        CommonTree EOF4_tree=null;

        try {
            // BELScriptWalker.g:96:35: ( ( NEWLINE | DOCUMENT_COMMENT | record )+ EOF )
            // BELScriptWalker.g:97:5: ( NEWLINE | DOCUMENT_COMMENT | record )+ EOF
            {
            root_0 = (CommonTree)adaptor.nil();

            // BELScriptWalker.g:97:5: ( NEWLINE | DOCUMENT_COMMENT | record )+
            int cnt1=0;
            loop1:
            do {
                int alt1=4;
                switch ( input.LA(1) ) {
                case NEWLINE:
                    {
                    alt1=1;
                    }
                    break;
                case DOCUMENT_COMMENT:
                    {
                    alt1=2;
                    }
                    break;
                case 24:
                case 26:
                case 27:
                case 44:
                case 45:
                case 46:
                case 47:
                case 48:
                case 49:
                case 50:
                case 51:
                case 52:
                case 53:
                case 54:
                case 55:
                case 56:
                case 57:
                case 58:
                case 59:
                case 60:
                case 61:
                case 62:
                case 63:
                case 64:
                case 65:
                case 66:
                case 67:
                case 68:
                case 69:
                case 70:
                case 71:
                case 72:
                case 73:
                case 74:
                case 75:
                case 76:
                case 77:
                case 78:
                case 79:
                case 80:
                case 81:
                case 82:
                case 83:
                case 84:
                case 85:
                case 86:
                case 87:
                case 88:
                case 89:
                case 90:
                case 91:
                case 92:
                case 93:
                case 94:
                case 95:
                case 96:
                case 97:
                case 98:
                case 99:
                case 100:
                case 101:
                case 102:
                    {
                    alt1=3;
                    }
                    break;

                }

                switch (alt1) {
              case 1 :
                  // BELScriptWalker.g:97:6: NEWLINE
                  {
                  _last = (CommonTree)input.LT(1);
                  NEWLINE1=(CommonTree)match(input,NEWLINE,FOLLOW_NEWLINE_in_document67);
                  NEWLINE1_tree = (CommonTree)adaptor.dupNode(NEWLINE1);

                  adaptor.addChild(root_0, NEWLINE1_tree);


                  }
                  break;
              case 2 :
                  // BELScriptWalker.g:97:16: DOCUMENT_COMMENT
                  {
                  _last = (CommonTree)input.LT(1);
                  DOCUMENT_COMMENT2=(CommonTree)match(input,DOCUMENT_COMMENT,FOLLOW_DOCUMENT_COMMENT_in_document71);
                  DOCUMENT_COMMENT2_tree = (CommonTree)adaptor.dupNode(DOCUMENT_COMMENT2);

                  adaptor.addChild(root_0, DOCUMENT_COMMENT2_tree);


                  }
                  break;
              case 3 :
                  // BELScriptWalker.g:97:35: record
                  {
                  _last = (CommonTree)input.LT(1);
                  pushFollow(FOLLOW_record_in_document75);
                  record3=record();

                  state._fsp--;

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

                  }
                  break;

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

            _last = (CommonTree)input.LT(1);
            EOF4=(CommonTree)match(input,EOF,FOLLOW_EOF_in_document79);
            EOF4_tree = (CommonTree)adaptor.dupNode(EOF4);

            adaptor.addChild(root_0, EOF4_tree);


                    if (!docprop.containsKey(BELDocumentProperty.NAME)) {
                        addError(new DocumentNameException(lastDocumentPropertyLocation, 0));
                    } else if (!docprop.containsKey(BELDocumentProperty.DESCRIPTION)) {
                        addError(new DocumentDescriptionException(lastDocumentPropertyLocation, 0));
                    } else if (!docprop.containsKey(BELDocumentProperty.VERSION)) {
                        addError(new DocumentVersionException(lastDocumentPropertyLocation, 0));
                    } else {
                        if (documentStatementGroup.getStatements().isEmpty()) {
                            // statements are only contained in explicitly-defined statement groups
                            retval.doc = new BELDocument(BELDocumentHeader.create(docprop), adlist, nslist, statementGroups);
                        } else {
                            // statements are defined in the implicit document statement group and possibly child statement groups
                            documentStatementGroup.setChildStatementGroups(statementGroups);
                            retval.doc = new BELDocument(BELDocumentHeader.create(docprop), adlist, nslist, Arrays.asList(documentStatementGroup));
                        }
                    }
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class record_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "record"
    // BELScriptWalker.g:117:1: record : ( define_namespace | define_annotation | set_annotation | set_document | set_statement_group | unset_statement_group | unset | statement ) ;
    public final BELScriptWalker.record_return record() throws RecognitionException {
        BELScriptWalker.record_return retval = new BELScriptWalker.record_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        BELScriptWalker.define_namespace_return define_namespace5 = null;

        BELScriptWalker.define_annotation_return define_annotation6 = null;

        BELScriptWalker.set_annotation_return set_annotation7 = null;

        BELScriptWalker.set_document_return set_document8 = null;

        BELScriptWalker.set_statement_group_return set_statement_group9 = null;

        BELScriptWalker.unset_statement_group_return unset_statement_group10 = null;

        BELScriptWalker.unset_return unset11 = null;

        BELScriptWalker.statement_return statement12 = null;



        try {
            // BELScriptWalker.g:117:7: ( ( define_namespace | define_annotation | set_annotation | set_document | set_statement_group | unset_statement_group | unset | statement ) )
            // BELScriptWalker.g:118:5: ( define_namespace | define_annotation | set_annotation | set_document | set_statement_group | unset_statement_group | unset | statement )
            {
            root_0 = (CommonTree)adaptor.nil();

            // BELScriptWalker.g:118:5: ( define_namespace | define_annotation | set_annotation | set_document | set_statement_group | unset_statement_group | unset | statement )
            int alt2=8;
            alt2 = dfa2.predict(input);
            switch (alt2) {
                case 1 :
                    // BELScriptWalker.g:118:6: define_namespace
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_define_namespace_in_record98);
                    define_namespace5=define_namespace();

                    state._fsp--;

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

                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:118:25: define_annotation
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_define_annotation_in_record102);
                    define_annotation6=define_annotation();

                    state._fsp--;

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

                    }
                    break;
                case 3 :
                    // BELScriptWalker.g:118:45: set_annotation
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_set_annotation_in_record106);
                    set_annotation7=set_annotation();

                    state._fsp--;

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

                    }
                    break;
                case 4 :
                    // BELScriptWalker.g:118:62: set_document
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_set_document_in_record110);
                    set_document8=set_document();

                    state._fsp--;

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

                    }
                    break;
                case 5 :
                    // BELScriptWalker.g:118:77: set_statement_group
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_set_statement_group_in_record114);
                    set_statement_group9=set_statement_group();

                    state._fsp--;

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

                    }
                    break;
                case 6 :
                    // BELScriptWalker.g:118:99: unset_statement_group
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_unset_statement_group_in_record118);
                    unset_statement_group10=unset_statement_group();

                    state._fsp--;

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

                    }
                    break;
                case 7 :
                    // BELScriptWalker.g:118:123: unset
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_unset_in_record122);
                    unset11=unset();

                    state._fsp--;

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

                    }
                    break;
                case 8 :
                    // BELScriptWalker.g:118:131: statement
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_statement_in_record126);
                    statement12=statement();

                    state._fsp--;

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

                    }
                    break;

            }


            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class set_document_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "set_document"
    // BELScriptWalker.g:121:1: set_document : ( 'SET' dkt= DOCUMENT_KEYWORD ) prop= document_property '=' (qv= QUOTED_VALUE | oi= OBJECT_IDENT ) ;
    public final BELScriptWalker.set_document_return set_document() throws RecognitionException {
        BELScriptWalker.set_document_return retval = new BELScriptWalker.set_document_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree dkt=null;
        CommonTree qv=null;
        CommonTree oi=null;
        CommonTree string_literal13=null;
        CommonTree char_literal14=null;
        BELScriptWalker.document_property_return prop = null;


        CommonTree dkt_tree=null;
        CommonTree qv_tree=null;
        CommonTree oi_tree=null;
        CommonTree string_literal13_tree=null;
        CommonTree char_literal14_tree=null;

        try {
            // BELScriptWalker.g:121:13: ( ( 'SET' dkt= DOCUMENT_KEYWORD ) prop= document_property '=' (qv= QUOTED_VALUE | oi= OBJECT_IDENT ) )
            // BELScriptWalker.g:122:5: ( 'SET' dkt= DOCUMENT_KEYWORD ) prop= document_property '=' (qv= QUOTED_VALUE | oi= OBJECT_IDENT )
            {
            root_0 = (CommonTree)adaptor.nil();

            // BELScriptWalker.g:122:5: ( 'SET' dkt= DOCUMENT_KEYWORD )
            // BELScriptWalker.g:122:6: 'SET' dkt= DOCUMENT_KEYWORD
            {
            _last = (CommonTree)input.LT(1);
            string_literal13=(CommonTree)match(input,24,FOLLOW_24_in_set_document144);
            string_literal13_tree = (CommonTree)adaptor.dupNode(string_literal13);

            adaptor.addChild(root_0, string_literal13_tree);

            _last = (CommonTree)input.LT(1);
            dkt=(CommonTree)match(input,DOCUMENT_KEYWORD,FOLLOW_DOCUMENT_KEYWORD_in_set_document148);
            dkt_tree = (CommonTree)adaptor.dupNode(dkt);

            adaptor.addChild(root_0, dkt_tree);


            }

            _last = (CommonTree)input.LT(1);
            pushFollow(FOLLOW_document_property_in_set_document153);
            prop=document_property();

            state._fsp--;

            adaptor.addChild(root_0, prop.getTree());
            _last = (CommonTree)input.LT(1);
            char_literal14=(CommonTree)match(input,25,FOLLOW_25_in_set_document155);
            char_literal14_tree = (CommonTree)adaptor.dupNode(char_literal14);

            adaptor.addChild(root_0, char_literal14_tree);

            // BELScriptWalker.g:122:61: (qv= QUOTED_VALUE | oi= OBJECT_IDENT )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==QUOTED_VALUE) ) {
                alt3=1;
            }
            else if ( (LA3_0==OBJECT_IDENT) ) {
                alt3=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // BELScriptWalker.g:122:62: qv= QUOTED_VALUE
                    {
                    _last = (CommonTree)input.LT(1);
                    qv=(CommonTree)match(input,QUOTED_VALUE,FOLLOW_QUOTED_VALUE_in_set_document160);
                    qv_tree = (CommonTree)adaptor.dupNode(qv);

                    adaptor.addChild(root_0, qv_tree);


                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:122:80: oi= OBJECT_IDENT
                    {
                    _last = (CommonTree)input.LT(1);
                    oi=(CommonTree)match(input,OBJECT_IDENT,FOLLOW_OBJECT_IDENT_in_set_document166);
                    oi_tree = (CommonTree)adaptor.dupNode(oi);

                    adaptor.addChild(root_0, oi_tree);


                    }
                    break;

            }


                    if (!annotationContext.isEmpty() || !stmtlist.isEmpty()) {
                        addError(new SetDocumentPropertiesFirstException(dkt.getLine(), dkt.getCharPositionInLine()));
                    }

                    final String keywordValue;
                    if (qv != null) {
                        keywordValue = qv.toString();
                    } else if (oi != null) {
                        keywordValue = oi.toString();
                    } else {
                        throw new IllegalStateException("Did not understand document keyword value, expecting quoted value or object identifier.");
                    }

                    docprop.put(prop.r, keywordValue);
                    lastDocumentPropertyLocation = dkt.getLine();
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class set_statement_group_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "set_statement_group"
    // BELScriptWalker.g:141:1: set_statement_group : 'SET' STATEMENT_GROUP_KEYWORD '=' (qv= QUOTED_VALUE | oi= OBJECT_IDENT ) ;
    public final BELScriptWalker.set_statement_group_return set_statement_group() throws RecognitionException {
        BELScriptWalker.set_statement_group_return retval = new BELScriptWalker.set_statement_group_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree qv=null;
        CommonTree oi=null;
        CommonTree string_literal15=null;
        CommonTree STATEMENT_GROUP_KEYWORD16=null;
        CommonTree char_literal17=null;

        CommonTree qv_tree=null;
        CommonTree oi_tree=null;
        CommonTree string_literal15_tree=null;
        CommonTree STATEMENT_GROUP_KEYWORD16_tree=null;
        CommonTree char_literal17_tree=null;

        try {
            // BELScriptWalker.g:141:20: ( 'SET' STATEMENT_GROUP_KEYWORD '=' (qv= QUOTED_VALUE | oi= OBJECT_IDENT ) )
            // BELScriptWalker.g:142:5: 'SET' STATEMENT_GROUP_KEYWORD '=' (qv= QUOTED_VALUE | oi= OBJECT_IDENT )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            string_literal15=(CommonTree)match(input,24,FOLLOW_24_in_set_statement_group185);
            string_literal15_tree = (CommonTree)adaptor.dupNode(string_literal15);

            adaptor.addChild(root_0, string_literal15_tree);

            _last = (CommonTree)input.LT(1);
            STATEMENT_GROUP_KEYWORD16=(CommonTree)match(input,STATEMENT_GROUP_KEYWORD,FOLLOW_STATEMENT_GROUP_KEYWORD_in_set_statement_group187);
            STATEMENT_GROUP_KEYWORD16_tree = (CommonTree)adaptor.dupNode(STATEMENT_GROUP_KEYWORD16);

            adaptor.addChild(root_0, STATEMENT_GROUP_KEYWORD16_tree);

            _last = (CommonTree)input.LT(1);
            char_literal17=(CommonTree)match(input,25,FOLLOW_25_in_set_statement_group189);
            char_literal17_tree = (CommonTree)adaptor.dupNode(char_literal17);

            adaptor.addChild(root_0, char_literal17_tree);

            // BELScriptWalker.g:142:39: (qv= QUOTED_VALUE | oi= OBJECT_IDENT )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==QUOTED_VALUE) ) {
                alt4=1;
            }
            else if ( (LA4_0==OBJECT_IDENT) ) {
                alt4=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // BELScriptWalker.g:142:40: qv= QUOTED_VALUE
                    {
                    _last = (CommonTree)input.LT(1);
                    qv=(CommonTree)match(input,QUOTED_VALUE,FOLLOW_QUOTED_VALUE_in_set_statement_group194);
                    qv_tree = (CommonTree)adaptor.dupNode(qv);

                    adaptor.addChild(root_0, qv_tree);


                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:142:58: oi= OBJECT_IDENT
                    {
                    _last = (CommonTree)input.LT(1);
                    oi=(CommonTree)match(input,OBJECT_IDENT,FOLLOW_OBJECT_IDENT_in_set_statement_group200);
                    oi_tree = (CommonTree)adaptor.dupNode(oi);

                    adaptor.addChild(root_0, oi_tree);


                    }
                    break;

            }


                    final String name;
                    if (qv != null) {
                        name = qv.toString();
                    } else if (oi != null) {
                        name = oi.toString();
                    } else {
                        throw new IllegalStateException("Did not understand statement group value, expecting quoted value or object identifier.");
                    }

                    activeStatementGroup = new BELStatementGroup(name);
                    statementGroups.add(activeStatementGroup);
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class set_annotation_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "set_annotation"
    // BELScriptWalker.g:157:1: set_annotation : 'SET' an= OBJECT_IDENT '=' (qv= QUOTED_VALUE | list= VALUE_LIST | oi= OBJECT_IDENT ) ;
    public final BELScriptWalker.set_annotation_return set_annotation() throws RecognitionException {
        BELScriptWalker.set_annotation_return retval = new BELScriptWalker.set_annotation_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree an=null;
        CommonTree qv=null;
        CommonTree list=null;
        CommonTree oi=null;
        CommonTree string_literal18=null;
        CommonTree char_literal19=null;

        CommonTree an_tree=null;
        CommonTree qv_tree=null;
        CommonTree list_tree=null;
        CommonTree oi_tree=null;
        CommonTree string_literal18_tree=null;
        CommonTree char_literal19_tree=null;

        try {
            // BELScriptWalker.g:157:15: ( 'SET' an= OBJECT_IDENT '=' (qv= QUOTED_VALUE | list= VALUE_LIST | oi= OBJECT_IDENT ) )
            // BELScriptWalker.g:158:5: 'SET' an= OBJECT_IDENT '=' (qv= QUOTED_VALUE | list= VALUE_LIST | oi= OBJECT_IDENT )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            string_literal18=(CommonTree)match(input,24,FOLLOW_24_in_set_annotation219);
            string_literal18_tree = (CommonTree)adaptor.dupNode(string_literal18);

            adaptor.addChild(root_0, string_literal18_tree);

            _last = (CommonTree)input.LT(1);
            an=(CommonTree)match(input,OBJECT_IDENT,FOLLOW_OBJECT_IDENT_in_set_annotation223);
            an_tree = (CommonTree)adaptor.dupNode(an);

            adaptor.addChild(root_0, an_tree);

            _last = (CommonTree)input.LT(1);
            char_literal19=(CommonTree)match(input,25,FOLLOW_25_in_set_annotation225);
            char_literal19_tree = (CommonTree)adaptor.dupNode(char_literal19);

            adaptor.addChild(root_0, char_literal19_tree);

            // BELScriptWalker.g:158:31: (qv= QUOTED_VALUE | list= VALUE_LIST | oi= OBJECT_IDENT )
            int alt5=3;
            switch ( input.LA(1) ) {
            case QUOTED_VALUE:
                {
                alt5=1;
                }
                break;
            case VALUE_LIST:
                {
                alt5=2;
                }
                break;
            case OBJECT_IDENT:
                {
                alt5=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 5, 0, input);

                throw nvae;
            }

            switch (alt5) {
                case 1 :
                    // BELScriptWalker.g:158:32: qv= QUOTED_VALUE
                    {
                    _last = (CommonTree)input.LT(1);
                    qv=(CommonTree)match(input,QUOTED_VALUE,FOLLOW_QUOTED_VALUE_in_set_annotation230);
                    qv_tree = (CommonTree)adaptor.dupNode(qv);

                    adaptor.addChild(root_0, qv_tree);


                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:158:50: list= VALUE_LIST
                    {
                    _last = (CommonTree)input.LT(1);
                    list=(CommonTree)match(input,VALUE_LIST,FOLLOW_VALUE_LIST_in_set_annotation236);
                    list_tree = (CommonTree)adaptor.dupNode(list);

                    adaptor.addChild(root_0, list_tree);


                    }
                    break;
                case 3 :
                    // BELScriptWalker.g:158:68: oi= OBJECT_IDENT
                    {
                    _last = (CommonTree)input.LT(1);
                    oi=(CommonTree)match(input,OBJECT_IDENT,FOLLOW_OBJECT_IDENT_in_set_annotation242);
                    oi_tree = (CommonTree)adaptor.dupNode(oi);

                    adaptor.addChild(root_0, oi_tree);


                    }
                    break;

            }


                    final String name = an.getText();

                    BELAnnotationDefinition ad = definedAnnotations.get(name);
                    if (ad != null) {
                        // read annotation value
                        final BELAnnotation annotation;
                        if (qv != null) {
                            annotation = new BELAnnotation(ad, qv.getText());
                        } else if (oi != null) {
                            annotation = new BELAnnotation(ad, oi.getText());
                        } else {
                            if (list == null) {
                                throw new IllegalStateException("Did not understand annotation value, expecting annotation list form.");
                            }

                            String listvalues = list.getText();
                            listvalues = listvalues.substring(1, listvalues.length() - 1);
                            annotation = new BELAnnotation(ad, Arrays.asList(ParserUtil.parseListRecord(listvalues)));
                        }

                        if (activeStatementGroup != null) {
                            // add to local statement group scope
                            sgAnnotationContext.put(name, annotation);
                        } else {
                            // add to main statement group scope
                            annotationContext.put(name, annotation);
                        }
                    } else if (!name.equals("Citation") && !name.equals("Evidence")) {
                        // throw if annotation is not defined and it's not the intrinsics: Citation or EvidenceLine
                        addError(new DefineAnnotationBeforeUsageException(an.getLine(), an.getCharPositionInLine()));
                    }

                    if (name.equals("Citation")) {
                        // redefinition of citation so clear out citation context
                        citationContext = null;

                        if (list == null) {
                            addError(new InvalidCitationException(an.getLine(), an.getCharPositionInLine()));
                        } else {
                            String listvalues = list.getText();
                            String[] tokens = ParserUtil.parseListRecord(listvalues);

                            String type = null;
                            String cname = null;
                            String reference = null;
                            Date publicationDate = null;
                            String[] authors = null;
                            String comment = null;

                            // (required) parse type
                            if (tokens.length > 0 && tokens[0] != null) {
                              type = tokens[0];
                              if (!("Book".equals(type) || "Journal".equals(type) || "Online Resource".equals(type) || "Other".equals(type) || "PubMed".equals(type))) {
                                  addError(new InvalidCitationException(an.getLine(), an.getCharPositionInLine()));
                              }
                            } else {
                                addError(new InvalidCitationException(an.getLine(), an.getCharPositionInLine()));
                            }

                            // (required) parse name
                            if (tokens.length > 1 && tokens[1] != null) {
                              if ("".equals(tokens[1].trim())) {
                                  addError(new InvalidCitationException(an.getLine(), an.getCharPositionInLine()));
                              } else {
                                  cname = tokens[1];
                              }
                            } else {
                                addError(new InvalidCitationException(an.getLine(), an.getCharPositionInLine()));
                            }

                            // (required) parse reference
                            if (tokens.length > 2 && tokens[2] != null) {
                                if ("".equals(tokens[2].trim())) {
                                    addError(new InvalidCitationException(an.getLine(), an.getCharPositionInLine()));
                                } else {
                                    reference = tokens[2];
                                }
                            }

                            // (optional) parse date of publication
                            if (tokens.length > 3 && tokens[3] != null) {
                              if (!"".equals(tokens[3].trim())) {
                                  try {
                                      publicationDate = iso8601DateFormat.parse(tokens[3]);
                                  } catch (ParseException e) {
                                      addError(new InvalidCitationException(an.getLine(), an.getCharPositionInLine()));
                                  }

                                  if (publicationDate == null) {
                                      addError(new InvalidCitationException(an.getLine(), an.getCharPositionInLine()));
                                  }
                              }
                            }

                            // (optional) parse authors
                            if (tokens.length > 4 && tokens[4] != null) {
                                authors = ParserUtil.parseValueSeparated(tokens[4]);
                            }

                            // (optional) parse comments
                            if (tokens.length > 5 && tokens[5] != null) {
                                comment = tokens[5];
                            }

                            citationContext = new BELCitation(type, cname, publicationDate, reference, authors == null ? null : Arrays.asList(authors), comment);
                        }
                    } else if (name.equals("Evidence")) {
                        // redefinition of evidence so clear out evidence context
                        evidenceContext = null;

                        if (qv == null || "".equals(qv.getText().trim())) {
                            addError(new InvalidEvidenceException(an.getLine(), an.getCharPositionInLine()));
                        } else {
                            evidenceContext = new BELEvidence(qv.getText());
                        }
                    }
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class unset_statement_group_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "unset_statement_group"
    // BELScriptWalker.g:278:1: unset_statement_group : 'UNSET' STATEMENT_GROUP_KEYWORD ;
    public final BELScriptWalker.unset_statement_group_return unset_statement_group() throws RecognitionException {
        BELScriptWalker.unset_statement_group_return retval = new BELScriptWalker.unset_statement_group_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree string_literal20=null;
        CommonTree STATEMENT_GROUP_KEYWORD21=null;

        CommonTree string_literal20_tree=null;
        CommonTree STATEMENT_GROUP_KEYWORD21_tree=null;

        try {
            // BELScriptWalker.g:278:22: ( 'UNSET' STATEMENT_GROUP_KEYWORD )
            // BELScriptWalker.g:279:5: 'UNSET' STATEMENT_GROUP_KEYWORD
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            string_literal20=(CommonTree)match(input,26,FOLLOW_26_in_unset_statement_group261);
            string_literal20_tree = (CommonTree)adaptor.dupNode(string_literal20);

            adaptor.addChild(root_0, string_literal20_tree);

            _last = (CommonTree)input.LT(1);
            STATEMENT_GROUP_KEYWORD21=(CommonTree)match(input,STATEMENT_GROUP_KEYWORD,FOLLOW_STATEMENT_GROUP_KEYWORD_in_unset_statement_group263);
            STATEMENT_GROUP_KEYWORD21_tree = (CommonTree)adaptor.dupNode(STATEMENT_GROUP_KEYWORD21);

            adaptor.addChild(root_0, STATEMENT_GROUP_KEYWORD21_tree);


                    activeStatementGroup = null;
                    sgAnnotationContext.clear();
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class unset_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "unset"
    // BELScriptWalker.g:285:1: unset : 'UNSET' (an= OBJECT_IDENT | list= IDENT_LIST ) ;
    public final BELScriptWalker.unset_return unset() throws RecognitionException {
        BELScriptWalker.unset_return retval = new BELScriptWalker.unset_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree an=null;
        CommonTree list=null;
        CommonTree string_literal22=null;

        CommonTree an_tree=null;
        CommonTree list_tree=null;
        CommonTree string_literal22_tree=null;

        try {
            // BELScriptWalker.g:285:6: ( 'UNSET' (an= OBJECT_IDENT | list= IDENT_LIST ) )
            // BELScriptWalker.g:286:5: 'UNSET' (an= OBJECT_IDENT | list= IDENT_LIST )
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            string_literal22=(CommonTree)match(input,26,FOLLOW_26_in_unset281);
            string_literal22_tree = (CommonTree)adaptor.dupNode(string_literal22);

            adaptor.addChild(root_0, string_literal22_tree);

            // BELScriptWalker.g:286:13: (an= OBJECT_IDENT | list= IDENT_LIST )
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==OBJECT_IDENT) ) {
                alt6=1;
            }
            else if ( (LA6_0==IDENT_LIST) ) {
                alt6=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 6, 0, input);

                throw nvae;
            }
            switch (alt6) {
                case 1 :
                    // BELScriptWalker.g:286:14: an= OBJECT_IDENT
                    {
                    _last = (CommonTree)input.LT(1);
                    an=(CommonTree)match(input,OBJECT_IDENT,FOLLOW_OBJECT_IDENT_in_unset286);
                    an_tree = (CommonTree)adaptor.dupNode(an);

                    adaptor.addChild(root_0, an_tree);


                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:286:32: list= IDENT_LIST
                    {
                    _last = (CommonTree)input.LT(1);
                    list=(CommonTree)match(input,IDENT_LIST,FOLLOW_IDENT_LIST_in_unset292);
                    list_tree = (CommonTree)adaptor.dupNode(list);

                    adaptor.addChild(root_0, list_tree);


                    }
                    break;

            }


                    if (an != null) {
                        String annotationName = an.getText();
                        if ("ALL".equals(annotationName)) {
                            if (activeStatementGroup == null)
                                annotationContext.clear();
                            else
                                sgAnnotationContext.clear();
                        } else if (definedAnnotations.containsKey(annotationName)) {
                            if (activeStatementGroup == null)
                                annotationContext.remove(annotationName);
                            else
                                sgAnnotationContext.remove(annotationName);
                        } else if (docprop.containsKey(BELDocumentProperty.getDocumentProperty(annotationName))) {
                            addError(new UnsetDocumentPropertiesException(an.getLine(), an.getCharPositionInLine()));
                        } else {
                            addWarning(new UnsetUndefinedAnnotationException(an.getLine(), an.getCharPositionInLine()));
                        }
                    }
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class define_namespace_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "define_namespace"
    // BELScriptWalker.g:308:1: define_namespace : ( 'DEFINE' ( (isdefault= 'DEFAULT' )? 'NAMESPACE' ) ) name= OBJECT_IDENT 'AS' 'URL' rloc= QUOTED_VALUE ;
    public final BELScriptWalker.define_namespace_return define_namespace() throws RecognitionException {
        BELScriptWalker.define_namespace_return retval = new BELScriptWalker.define_namespace_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree isdefault=null;
        CommonTree name=null;
        CommonTree rloc=null;
        CommonTree string_literal23=null;
        CommonTree string_literal24=null;
        CommonTree string_literal25=null;
        CommonTree string_literal26=null;

        CommonTree isdefault_tree=null;
        CommonTree name_tree=null;
        CommonTree rloc_tree=null;
        CommonTree string_literal23_tree=null;
        CommonTree string_literal24_tree=null;
        CommonTree string_literal25_tree=null;
        CommonTree string_literal26_tree=null;

        try {
            // BELScriptWalker.g:308:17: ( ( 'DEFINE' ( (isdefault= 'DEFAULT' )? 'NAMESPACE' ) ) name= OBJECT_IDENT 'AS' 'URL' rloc= QUOTED_VALUE )
            // BELScriptWalker.g:309:5: ( 'DEFINE' ( (isdefault= 'DEFAULT' )? 'NAMESPACE' ) ) name= OBJECT_IDENT 'AS' 'URL' rloc= QUOTED_VALUE
            {
            root_0 = (CommonTree)adaptor.nil();

            // BELScriptWalker.g:309:5: ( 'DEFINE' ( (isdefault= 'DEFAULT' )? 'NAMESPACE' ) )
            // BELScriptWalker.g:309:6: 'DEFINE' ( (isdefault= 'DEFAULT' )? 'NAMESPACE' )
            {
            _last = (CommonTree)input.LT(1);
            string_literal23=(CommonTree)match(input,27,FOLLOW_27_in_define_namespace312);
            string_literal23_tree = (CommonTree)adaptor.dupNode(string_literal23);

            adaptor.addChild(root_0, string_literal23_tree);

            // BELScriptWalker.g:309:15: ( (isdefault= 'DEFAULT' )? 'NAMESPACE' )
            // BELScriptWalker.g:309:16: (isdefault= 'DEFAULT' )? 'NAMESPACE'
            {
            // BELScriptWalker.g:309:16: (isdefault= 'DEFAULT' )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==28) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // BELScriptWalker.g:309:17: isdefault= 'DEFAULT'
                    {
                    _last = (CommonTree)input.LT(1);
                    isdefault=(CommonTree)match(input,28,FOLLOW_28_in_define_namespace318);
                    isdefault_tree = (CommonTree)adaptor.dupNode(isdefault);

                    adaptor.addChild(root_0, isdefault_tree);


                    }
                    break;

            }

            _last = (CommonTree)input.LT(1);
            string_literal24=(CommonTree)match(input,29,FOLLOW_29_in_define_namespace322);
            string_literal24_tree = (CommonTree)adaptor.dupNode(string_literal24);

            adaptor.addChild(root_0, string_literal24_tree);


            }


            }

            _last = (CommonTree)input.LT(1);
            name=(CommonTree)match(input,OBJECT_IDENT,FOLLOW_OBJECT_IDENT_in_define_namespace328);
            name_tree = (CommonTree)adaptor.dupNode(name);

            adaptor.addChild(root_0, name_tree);

            _last = (CommonTree)input.LT(1);
            string_literal25=(CommonTree)match(input,30,FOLLOW_30_in_define_namespace330);
            string_literal25_tree = (CommonTree)adaptor.dupNode(string_literal25);

            adaptor.addChild(root_0, string_literal25_tree);

            _last = (CommonTree)input.LT(1);
            string_literal26=(CommonTree)match(input,31,FOLLOW_31_in_define_namespace332);
            string_literal26_tree = (CommonTree)adaptor.dupNode(string_literal26);

            adaptor.addChild(root_0, string_literal26_tree);

            _last = (CommonTree)input.LT(1);
            rloc=(CommonTree)match(input,QUOTED_VALUE,FOLLOW_QUOTED_VALUE_in_define_namespace336);
            rloc_tree = (CommonTree)adaptor.dupNode(rloc);

            adaptor.addChild(root_0, rloc_tree);


                    final String nametext = name.getText();
                    final String rloctext = rloc.getText();

                    BELNamespaceDefinition belnsd;
                    if (isdefault != null) {
                        belnsd = new BELNamespaceDefinition(nametext, rloctext, true);
                    } else {
                        belnsd = new BELNamespaceDefinition(nametext, rloctext, false);
                    }

                    nslist.add(belnsd);
                    definedNamespaces.put(nametext, belnsd);
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class define_annotation_return extends TreeRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "define_annotation"
    // BELScriptWalker.g:325:1: define_annotation : ( 'DEFINE' 'ANNOTATION' ) name= OBJECT_IDENT 'AS' ( ( (type= 'URL' | type= 'PATTERN' ) value= QUOTED_VALUE ) | (type= 'LIST' value= VALUE_LIST ) ) ;
    public final BELScriptWalker.define_annotation_return define_annotation() throws RecognitionException {
        BELScriptWalker.define_annotation_return retval = new BELScriptWalker.define_annotation_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree name=null;
        CommonTree type=null;
        CommonTree value=null;
        CommonTree string_literal27=null;
        CommonTree string_literal28=null;
        CommonTree string_literal29=null;

        CommonTree name_tree=null;
        CommonTree type_tree=null;
        CommonTree value_tree=null;
        CommonTree string_literal27_tree=null;
        CommonTree string_literal28_tree=null;
        CommonTree string_literal29_tree=null;

        try {
            // BELScriptWalker.g:325:18: ( ( 'DEFINE' 'ANNOTATION' ) name= OBJECT_IDENT 'AS' ( ( (type= 'URL' | type= 'PATTERN' ) value= QUOTED_VALUE ) | (type= 'LIST' value= VALUE_LIST ) ) )
            // BELScriptWalker.g:326:5: ( 'DEFINE' 'ANNOTATION' ) name= OBJECT_IDENT 'AS' ( ( (type= 'URL' | type= 'PATTERN' ) value= QUOTED_VALUE ) | (type= 'LIST' value= VALUE_LIST ) )
            {
            root_0 = (CommonTree)adaptor.nil();

            // BELScriptWalker.g:326:5: ( 'DEFINE' 'ANNOTATION' )
            // BELScriptWalker.g:326:6: 'DEFINE' 'ANNOTATION'
            {
            _last = (CommonTree)input.LT(1);
            string_literal27=(CommonTree)match(input,27,FOLLOW_27_in_define_annotation355);
            string_literal27_tree = (CommonTree)adaptor.dupNode(string_literal27);

            adaptor.addChild(root_0, string_literal27_tree);

            _last = (CommonTree)input.LT(1);
            string_literal28=(CommonTree)match(input,32,FOLLOW_32_in_define_annotation357);
            string_literal28_tree = (CommonTree)adaptor.dupNode(string_literal28);

            adaptor.addChild(root_0, string_literal28_tree);


            }

            _last = (CommonTree)input.LT(1);
            name=(CommonTree)match(input,OBJECT_IDENT,FOLLOW_OBJECT_IDENT_in_define_annotation362);
            name_tree = (CommonTree)adaptor.dupNode(name);

            adaptor.addChild(root_0, name_tree);

            _last = (CommonTree)input.LT(1);
            string_literal29=(CommonTree)match(input,30,FOLLOW_30_in_define_annotation364);
            string_literal29_tree = (CommonTree)adaptor.dupNode(string_literal29);

            adaptor.addChild(root_0, string_literal29_tree);

            // BELScriptWalker.g:326:52: ( ( (type= 'URL' | type= 'PATTERN' ) value= QUOTED_VALUE ) | (type= 'LIST' value= VALUE_LIST ) )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( (LA9_0==31||LA9_0==33) ) {
                alt9=1;
            }
            else if ( (LA9_0==34) ) {
                alt9=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // BELScriptWalker.g:326:53: ( (type= 'URL' | type= 'PATTERN' ) value= QUOTED_VALUE )
                    {
                    // BELScriptWalker.g:326:53: ( (type= 'URL' | type= 'PATTERN' ) value= QUOTED_VALUE )
                    // BELScriptWalker.g:326:54: (type= 'URL' | type= 'PATTERN' ) value= QUOTED_VALUE
                    {
                    // BELScriptWalker.g:326:54: (type= 'URL' | type= 'PATTERN' )
                    int alt8=2;
                    int LA8_0 = input.LA(1);

                    if ( (LA8_0==31) ) {
                        alt8=1;
                    }
                    else if ( (LA8_0==33) ) {
                        alt8=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 8, 0, input);

                        throw nvae;
                    }
                    switch (alt8) {
                        case 1 :
                            // BELScriptWalker.g:326:55: type= 'URL'
                            {
                            _last = (CommonTree)input.LT(1);
                            type=(CommonTree)match(input,31,FOLLOW_31_in_define_annotation371);
                            type_tree = (CommonTree)adaptor.dupNode(type);

                            adaptor.addChild(root_0, type_tree);


                            }
                            break;
                        case 2 :
                            // BELScriptWalker.g:326:68: type= 'PATTERN'
                            {
                            _last = (CommonTree)input.LT(1);
                            type=(CommonTree)match(input,33,FOLLOW_33_in_define_annotation377);
                            type_tree = (CommonTree)adaptor.dupNode(type);

                            adaptor.addChild(root_0, type_tree);


                            }
                            break;

                    }

                    _last = (CommonTree)input.LT(1);
                    value=(CommonTree)match(input,QUOTED_VALUE,FOLLOW_QUOTED_VALUE_in_define_annotation382);
                    value_tree = (CommonTree)adaptor.dupNode(value);

                    adaptor.addChild(root_0, value_tree);


                    }


                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:326:106: (type= 'LIST' value= VALUE_LIST )
                    {
                    // BELScriptWalker.g:326:106: (type= 'LIST' value= VALUE_LIST )
                    // BELScriptWalker.g:326:107: type= 'LIST' value= VALUE_LIST
                    {
                    _last = (CommonTree)input.LT(1);
                    type=(CommonTree)match(input,34,FOLLOW_34_in_define_annotation390);
                    type_tree = (CommonTree)adaptor.dupNode(type);

                    adaptor.addChild(root_0, type_tree);

                    _last = (CommonTree)input.LT(1);
                    value=(CommonTree)match(input,VALUE_LIST,FOLLOW_VALUE_LIST_in_define_annotation394);
                    value_tree = (CommonTree)adaptor.dupNode(value);

                    adaptor.addChild(root_0, value_tree);


                    }


                    }
                    break;

            }


                    final String nametext = name.getText();

                    if (type != null && value != null) {
                      final String typetext = type.toString();
                      String valuetext = value.toString();
                      BELAnnotationType atype;

                      BELAnnotationDefinition ad;
                      if ("URL".equals(typetext)) {
                          atype = BELAnnotationType.URL;
                          ad = new BELAnnotationDefinition(nametext, atype, valuetext);
                      } else if ("PATTERN".equals(typetext)) {
                          atype = BELAnnotationType.PATTERN;
                          ad = new BELAnnotationDefinition(nametext, atype, valuetext);
                      } else {
                          atype = BELAnnotationType.LIST;
                          valuetext = valuetext.substring(1, valuetext.length() - 1);
                          ad = new BELAnnotationDefinition(nametext, atype, Arrays.asList(ParserUtil.parseListRecord(valuetext)));
                      }

                      adlist.add(ad);
                      definedAnnotations.put(nametext, ad);
                    }
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class document_property_return extends TreeRuleReturnScope {
        public BELDocumentProperty r;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "document_property"
    // BELScriptWalker.g:353:1: document_property returns [BELDocumentProperty r] : (pv= 'Authors' | pv= 'ContactInfo' | pv= 'Copyright' | pv= 'Description' | pv= 'Disclaimer' | pv= 'Licenses' | pv= 'Name' | pv= 'Version' );
    public final BELScriptWalker.document_property_return document_property() throws RecognitionException {
        BELScriptWalker.document_property_return retval = new BELScriptWalker.document_property_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree pv=null;

        CommonTree pv_tree=null;

        try {
            // BELScriptWalker.g:353:50: (pv= 'Authors' | pv= 'ContactInfo' | pv= 'Copyright' | pv= 'Description' | pv= 'Disclaimer' | pv= 'Licenses' | pv= 'Name' | pv= 'Version' )
            int alt10=8;
            switch ( input.LA(1) ) {
            case 35:
                {
                alt10=1;
                }
                break;
            case 36:
                {
                alt10=2;
                }
                break;
            case 37:
                {
                alt10=3;
                }
                break;
            case 38:
                {
                alt10=4;
                }
                break;
            case 39:
                {
                alt10=5;
                }
                break;
            case 40:
                {
                alt10=6;
                }
                break;
            case 41:
                {
                alt10=7;
                }
                break;
            case 42:
                {
                alt10=8;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 10, 0, input);

                throw nvae;
            }

            switch (alt10) {
                case 1 :
                    // BELScriptWalker.g:354:5: pv= 'Authors'
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pv=(CommonTree)match(input,35,FOLLOW_35_in_document_property420);
                    pv_tree = (CommonTree)adaptor.dupNode(pv);

                    adaptor.addChild(root_0, pv_tree);

                    retval.r = BELDocumentProperty.getDocumentProperty(pv.getText());

                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:355:5: pv= 'ContactInfo'
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pv=(CommonTree)match(input,36,FOLLOW_36_in_document_property436);
                    pv_tree = (CommonTree)adaptor.dupNode(pv);

                    adaptor.addChild(root_0, pv_tree);

                    retval.r = BELDocumentProperty.getDocumentProperty(pv.getText());

                    }
                    break;
                case 3 :
                    // BELScriptWalker.g:356:5: pv= 'Copyright'
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pv=(CommonTree)match(input,37,FOLLOW_37_in_document_property448);
                    pv_tree = (CommonTree)adaptor.dupNode(pv);

                    adaptor.addChild(root_0, pv_tree);

                    retval.r = BELDocumentProperty.getDocumentProperty(pv.getText());

                    }
                    break;
                case 4 :
                    // BELScriptWalker.g:357:5: pv= 'Description'
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pv=(CommonTree)match(input,38,FOLLOW_38_in_document_property462);
                    pv_tree = (CommonTree)adaptor.dupNode(pv);

                    adaptor.addChild(root_0, pv_tree);

                    retval.r = BELDocumentProperty.getDocumentProperty(pv.getText());

                    }
                    break;
                case 5 :
                    // BELScriptWalker.g:358:5: pv= 'Disclaimer'
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pv=(CommonTree)match(input,39,FOLLOW_39_in_document_property474);
                    pv_tree = (CommonTree)adaptor.dupNode(pv);

                    adaptor.addChild(root_0, pv_tree);

                    retval.r = BELDocumentProperty.getDocumentProperty(pv.getText());

                    }
                    break;
                case 6 :
                    // BELScriptWalker.g:359:5: pv= 'Licenses'
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pv=(CommonTree)match(input,40,FOLLOW_40_in_document_property487);
                    pv_tree = (CommonTree)adaptor.dupNode(pv);

                    adaptor.addChild(root_0, pv_tree);

                    retval.r = BELDocumentProperty.getDocumentProperty(pv.getText());

                    }
                    break;
                case 7 :
                    // BELScriptWalker.g:360:5: pv= 'Name'
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pv=(CommonTree)match(input,41,FOLLOW_41_in_document_property502);
                    pv_tree = (CommonTree)adaptor.dupNode(pv);

                    adaptor.addChild(root_0, pv_tree);

                    retval.r = BELDocumentProperty.getDocumentProperty(pv.getText());

                    }
                    break;
                case 8 :
                    // BELScriptWalker.g:361:5: pv= 'Version'
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pv=(CommonTree)match(input,42,FOLLOW_42_in_document_property521);
                    pv_tree = (CommonTree)adaptor.dupNode(pv);

                    adaptor.addChild(root_0, pv_tree);

                    retval.r = BELDocumentProperty.getDocumentProperty(pv.getText());

                    }
                    break;

            }
            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

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

    // $ANTLR start "statement"
    // BELScriptWalker.g:364:1: statement : st= outer_term (rel= relationship ( ( OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN ) | ot= outer_term ) )? (comment= STATEMENT_COMMENT )? ;
    public final BELScriptWalker.statement_return statement() throws RecognitionException {
        BELScriptWalker.statement_return retval = new BELScriptWalker.statement_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree comment=null;
        CommonTree OPEN_PAREN30=null;
        CommonTree CLOSE_PAREN31=null;
        BELScriptWalker.outer_term_return st = null;

        BELScriptWalker.relationship_return rel = null;

        BELScriptWalker.outer_term_return nst = null;

        BELScriptWalker.relationship_return nrel = null;

        BELScriptWalker.outer_term_return not = null;

        BELScriptWalker.outer_term_return ot = null;


        CommonTree comment_tree=null;
        CommonTree OPEN_PAREN30_tree=null;
        CommonTree CLOSE_PAREN31_tree=null;

        try {
            // BELScriptWalker.g:364:10: (st= outer_term (rel= relationship ( ( OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN ) | ot= outer_term ) )? (comment= STATEMENT_COMMENT )? )
            // BELScriptWalker.g:365:5: st= outer_term (rel= relationship ( ( OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN ) | ot= outer_term ) )? (comment= STATEMENT_COMMENT )?
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            pushFollow(FOLLOW_outer_term_in_statement545);
            st=outer_term();

            state._fsp--;

            adaptor.addChild(root_0, st.getTree());
            // BELScriptWalker.g:365:19: (rel= relationship ( ( OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN ) | ot= outer_term ) )?
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( ((LA12_0>=103 && LA12_0<=130)) ) {
                alt12=1;
            }
            switch (alt12) {
                case 1 :
                    // BELScriptWalker.g:365:20: rel= relationship ( ( OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN ) | ot= outer_term )
                    {
                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_relationship_in_statement550);
                    rel=relationship();

                    state._fsp--;

                    adaptor.addChild(root_0, rel.getTree());
                    // BELScriptWalker.g:365:37: ( ( OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN ) | ot= outer_term )
                    int alt11=2;
                    int LA11_0 = input.LA(1);

                    if ( (LA11_0==OPEN_PAREN) ) {
                        alt11=1;
                    }
                    else if ( ((LA11_0>=44 && LA11_0<=102)) ) {
                        alt11=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 11, 0, input);

                        throw nvae;
                    }
                    switch (alt11) {
                        case 1 :
                            // BELScriptWalker.g:365:38: ( OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN )
                            {
                            // BELScriptWalker.g:365:38: ( OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN )
                            // BELScriptWalker.g:365:39: OPEN_PAREN nst= outer_term nrel= relationship not= outer_term CLOSE_PAREN
                            {
                            _last = (CommonTree)input.LT(1);
                            OPEN_PAREN30=(CommonTree)match(input,OPEN_PAREN,FOLLOW_OPEN_PAREN_in_statement554);
                            OPEN_PAREN30_tree = (CommonTree)adaptor.dupNode(OPEN_PAREN30);

                            adaptor.addChild(root_0, OPEN_PAREN30_tree);

                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_outer_term_in_statement558);
                            nst=outer_term();

                            state._fsp--;

                            adaptor.addChild(root_0, nst.getTree());
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_relationship_in_statement562);
                            nrel=relationship();

                            state._fsp--;

                            adaptor.addChild(root_0, nrel.getTree());
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_outer_term_in_statement566);
                            not=outer_term();

                            state._fsp--;

                            adaptor.addChild(root_0, not.getTree());
                            _last = (CommonTree)input.LT(1);
                            CLOSE_PAREN31=(CommonTree)match(input,CLOSE_PAREN,FOLLOW_CLOSE_PAREN_in_statement568);
                            CLOSE_PAREN31_tree = (CommonTree)adaptor.dupNode(CLOSE_PAREN31);

                            adaptor.addChild(root_0, CLOSE_PAREN31_tree);


                            }


                            }
                            break;
                        case 2 :
                            // BELScriptWalker.g:365:113: ot= outer_term
                            {
                            _last = (CommonTree)input.LT(1);
                            pushFollow(FOLLOW_outer_term_in_statement575);
                            ot=outer_term();

                            state._fsp--;

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

                            }
                            break;

                    }


                    }
                    break;

            }

            // BELScriptWalker.g:365:137: (comment= STATEMENT_COMMENT )?
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==STATEMENT_COMMENT) ) {
                alt13=1;
            }
            switch (alt13) {
                case 1 :
                    // BELScriptWalker.g:365:137: comment= STATEMENT_COMMENT
                    {
                    _last = (CommonTree)input.LT(1);
                    comment=(CommonTree)match(input,STATEMENT_COMMENT,FOLLOW_STATEMENT_COMMENT_in_statement582);
                    comment_tree = (CommonTree)adaptor.dupNode(comment);

                    adaptor.addChild(root_0, comment_tree);


                    }
                    break;

            }


                    final StringBuilder stmtBuilder = new StringBuilder();
                    stmtBuilder.append(st.r);

                    if (rel != null) {
                        stmtBuilder.append(" ").append(rel.r);

                        if (ot != null) {
                            stmtBuilder.append(" ").append(ot.r);
                        } else {
                            stmtBuilder.append("(");

                            if (nst != null && nrel != null && not != null) {
                                stmtBuilder.append(nst.r).append(" ").append(nrel.r).append(" ").append(not.r);
                            }
                            stmtBuilder.append(")");
                        }
                    }

                    String commentText = null;
                    if (comment != null) {
                        commentText = comment.getText();
                    }

                    // build effective annotations from main statement group context and then local statement group context, if any
                    final Map<String, BELAnnotation> effectiveAnnotations = new LinkedHashMap<String, BELAnnotation>(annotationContext);
                    if (activeStatementGroup != null) {
                        effectiveAnnotations.putAll(sgAnnotationContext);
                    }

                    final List<BELAnnotation> annotations = new ArrayList<BELAnnotation>(effectiveAnnotations.values());

                    // build statement and keep track of it for validation purposes
                    final BELStatement stmt = new BELStatement(stmtBuilder.toString(), annotations, citationContext, evidenceContext, commentText);
                    stmtlist.add(stmt);

                    // add statement to scoped statement group
                    if (activeStatementGroup != null) {
                        activeStatementGroup.getStatements().add(stmt);
                    } else {
                        documentStatementGroup.getStatements().add(stmt);
                    }
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class outer_term_return extends TreeRuleReturnScope {
        public String r;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "outer_term"
    // BELScriptWalker.g:410:1: outer_term returns [String r] : f= function op= OPEN_PAREN ( (c= ',' )? a= argument )* cp= CLOSE_PAREN ;
    public final BELScriptWalker.outer_term_return outer_term() throws RecognitionException {
        BELScriptWalker.outer_term_return retval = new BELScriptWalker.outer_term_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree op=null;
        CommonTree c=null;
        CommonTree cp=null;
        BELScriptWalker.function_return f = null;

        BELScriptWalker.argument_return a = null;


        CommonTree op_tree=null;
        CommonTree c_tree=null;
        CommonTree cp_tree=null;


            final StringBuilder tBuilder = new StringBuilder();

        try {
            // BELScriptWalker.g:414:1: (f= function op= OPEN_PAREN ( (c= ',' )? a= argument )* cp= CLOSE_PAREN )
            // BELScriptWalker.g:415:5: f= function op= OPEN_PAREN ( (c= ',' )? a= argument )* cp= CLOSE_PAREN
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            pushFollow(FOLLOW_function_in_outer_term613);
            f=function();

            state._fsp--;

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

                    tBuilder.append(f.r);
               
            _last = (CommonTree)input.LT(1);
            op=(CommonTree)match(input,OPEN_PAREN,FOLLOW_OPEN_PAREN_in_outer_term619);
            op_tree = (CommonTree)adaptor.dupNode(op);

            adaptor.addChild(root_0, op_tree);


                    tBuilder.append(op.getText());
               
            // BELScriptWalker.g:419:7: ( (c= ',' )? a= argument )*
            loop15:
            do {
                int alt15=2;
                int LA15_0 = input.LA(1);

                if ( (LA15_0==OBJECT_IDENT||LA15_0==QUOTED_VALUE||LA15_0==NS_PREFIX||(LA15_0>=43 && LA15_0<=102)) ) {
                    alt15=1;
                }


                switch (alt15) {
              case 1 :
                  // BELScriptWalker.g:419:8: (c= ',' )? a= argument
                  {
                  // BELScriptWalker.g:419:9: (c= ',' )?
                  int alt14=2;
                  int LA14_0 = input.LA(1);

                  if ( (LA14_0==43) ) {
                      alt14=1;
                  }
                  switch (alt14) {
                      case 1 :
                          // BELScriptWalker.g:419:9: c= ','
                          {
                          _last = (CommonTree)input.LT(1);
                          c=(CommonTree)match(input,43,FOLLOW_43_in_outer_term626);
                          c_tree = (CommonTree)adaptor.dupNode(c);

                          adaptor.addChild(root_0, c_tree);


                          }
                          break;

                  }


                          if (c != null) {
                              tBuilder.append(c.getText());
                          }
                     
                  _last = (CommonTree)input.LT(1);
                  pushFollow(FOLLOW_argument_in_outer_term633);
                  a=argument();

                  state._fsp--;

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

                          tBuilder.append(a.r);
                     

                  }
                  break;

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

            _last = (CommonTree)input.LT(1);
            cp=(CommonTree)match(input,CLOSE_PAREN,FOLLOW_CLOSE_PAREN_in_outer_term641);
            cp_tree = (CommonTree)adaptor.dupNode(cp);

            adaptor.addChild(root_0, cp_tree);


                    tBuilder.append(cp.getText());
                    retval.r = tBuilder.toString();
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class argument_return extends TreeRuleReturnScope {
        public String r;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "argument"
    // BELScriptWalker.g:431:1: argument returns [String r] : (p= param | t= term );
    public final BELScriptWalker.argument_return argument() throws RecognitionException {
        BELScriptWalker.argument_return retval = new BELScriptWalker.argument_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        BELScriptWalker.param_return p = null;

        BELScriptWalker.term_return t = null;



        try {
            // BELScriptWalker.g:431:28: (p= param | t= term )
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==OBJECT_IDENT||LA16_0==QUOTED_VALUE||LA16_0==NS_PREFIX) ) {
                alt16=1;
            }
            else if ( ((LA16_0>=44 && LA16_0<=102)) ) {
                alt16=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 16, 0, input);

                throw nvae;
            }
            switch (alt16) {
                case 1 :
                    // BELScriptWalker.g:432:5: p= param
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_param_in_argument665);
                    p=param();

                    state._fsp--;

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

                            retval.r = p.r;
                       

                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:435:5: t= term
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    _last = (CommonTree)input.LT(1);
                    pushFollow(FOLLOW_term_in_argument677);
                    t=term();

                    state._fsp--;

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

                            retval.r = t.r;
                       

                    }
                    break;

            }
            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class term_return extends TreeRuleReturnScope {
        public String r;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "term"
    // BELScriptWalker.g:440:1: term returns [String r] : f= function op= OPEN_PAREN ( (c= ',' )? (t= term | p= param ) )* cp= CLOSE_PAREN ;
    public final BELScriptWalker.term_return term() throws RecognitionException {
        BELScriptWalker.term_return retval = new BELScriptWalker.term_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree op=null;
        CommonTree c=null;
        CommonTree cp=null;
        BELScriptWalker.function_return f = null;

        BELScriptWalker.term_return t = null;

        BELScriptWalker.param_return p = null;


        CommonTree op_tree=null;
        CommonTree c_tree=null;
        CommonTree cp_tree=null;


            final StringBuilder termBuilder = new StringBuilder();

        try {
            // BELScriptWalker.g:444:1: (f= function op= OPEN_PAREN ( (c= ',' )? (t= term | p= param ) )* cp= CLOSE_PAREN )
            // BELScriptWalker.g:445:5: f= function op= OPEN_PAREN ( (c= ',' )? (t= term | p= param ) )* cp= CLOSE_PAREN
            {
            root_0 = (CommonTree)adaptor.nil();

            _last = (CommonTree)input.LT(1);
            pushFollow(FOLLOW_function_in_term707);
            f=function();

            state._fsp--;

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

                    termBuilder.append(f.r);
               
            _last = (CommonTree)input.LT(1);
            op=(CommonTree)match(input,OPEN_PAREN,FOLLOW_OPEN_PAREN_in_term713);
            op_tree = (CommonTree)adaptor.dupNode(op);

            adaptor.addChild(root_0, op_tree);


                    termBuilder.append(op.getText());
               
            // BELScriptWalker.g:449:6: ( (c= ',' )? (t= term | p= param ) )*
            loop19:
            do {
                int alt19=2;
                int LA19_0 = input.LA(1);

                if ( (LA19_0==OBJECT_IDENT||LA19_0==QUOTED_VALUE||LA19_0==NS_PREFIX||(LA19_0>=43 && LA19_0<=102)) ) {
                    alt19=1;
                }


                switch (alt19) {
              case 1 :
                  // BELScriptWalker.g:449:7: (c= ',' )? (t= term | p= param )
                  {
                  // BELScriptWalker.g:449:8: (c= ',' )?
                  int alt17=2;
                  int LA17_0 = input.LA(1);

                  if ( (LA17_0==43) ) {
                      alt17=1;
                  }
                  switch (alt17) {
                      case 1 :
                          // BELScriptWalker.g:449:8: c= ','
                          {
                          _last = (CommonTree)input.LT(1);
                          c=(CommonTree)match(input,43,FOLLOW_43_in_term719);
                          c_tree = (CommonTree)adaptor.dupNode(c);

                          adaptor.addChild(root_0, c_tree);


                          }
                          break;

                  }


                          if (c != null) {
                              termBuilder.append(c.getText());
                          }
                     
                  // BELScriptWalker.g:453:7: (t= term | p= param )
                  int alt18=2;
                  int LA18_0 = input.LA(1);

                  if ( ((LA18_0>=44 && LA18_0<=102)) ) {
                      alt18=1;
                  }
                  else if ( (LA18_0==OBJECT_IDENT||LA18_0==QUOTED_VALUE||LA18_0==NS_PREFIX) ) {
                      alt18=2;
                  }
                  else {
                      NoViableAltException nvae =
                          new NoViableAltException("", 18, 0, input);

                      throw nvae;
                  }
                  switch (alt18) {
                      case 1 :
                          // BELScriptWalker.g:453:8: t= term
                          {
                          _last = (CommonTree)input.LT(1);
                          pushFollow(FOLLOW_term_in_term727);
                          t=term();

                          state._fsp--;

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

                                  termBuilder.append(t.r);
                             

                          }
                          break;
                      case 2 :
                          // BELScriptWalker.g:455:9: p= param
                          {
                          _last = (CommonTree)input.LT(1);
                          pushFollow(FOLLOW_param_in_term735);
                          p=param();

                          state._fsp--;

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

                                  termBuilder.append(p.r);
                             

                          }
                          break;

                  }


                  }
                  break;

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

            _last = (CommonTree)input.LT(1);
            cp=(CommonTree)match(input,CLOSE_PAREN,FOLLOW_CLOSE_PAREN_in_term744);
            cp_tree = (CommonTree)adaptor.dupNode(cp);

            adaptor.addChild(root_0, cp_tree);


                    termBuilder.append(cp.getText());
                    retval.r = termBuilder.toString();
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class param_return extends TreeRuleReturnScope {
        public String r;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "param"
    // BELScriptWalker.g:464:10: fragment param returns [String r] : (nsp= NS_PREFIX )? (id= OBJECT_IDENT | quo= QUOTED_VALUE ) ;
    public final BELScriptWalker.param_return param() throws RecognitionException {
        BELScriptWalker.param_return retval = new BELScriptWalker.param_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree nsp=null;
        CommonTree id=null;
        CommonTree quo=null;

        CommonTree nsp_tree=null;
        CommonTree id_tree=null;
        CommonTree quo_tree=null;

        try {
            // BELScriptWalker.g:464:34: ( (nsp= NS_PREFIX )? (id= OBJECT_IDENT | quo= QUOTED_VALUE ) )
            // BELScriptWalker.g:465:5: (nsp= NS_PREFIX )? (id= OBJECT_IDENT | quo= QUOTED_VALUE )
            {
            root_0 = (CommonTree)adaptor.nil();

            // BELScriptWalker.g:465:8: (nsp= NS_PREFIX )?
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( (LA20_0==NS_PREFIX) ) {
                alt20=1;
            }
            switch (alt20) {
                case 1 :
                    // BELScriptWalker.g:465:8: nsp= NS_PREFIX
                    {
                    _last = (CommonTree)input.LT(1);
                    nsp=(CommonTree)match(input,NS_PREFIX,FOLLOW_NS_PREFIX_in_param772);
                    nsp_tree = (CommonTree)adaptor.dupNode(nsp);

                    adaptor.addChild(root_0, nsp_tree);


                    }
                    break;

            }

            // BELScriptWalker.g:465:20: (id= OBJECT_IDENT | quo= QUOTED_VALUE )
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( (LA21_0==OBJECT_IDENT) ) {
                alt21=1;
            }
            else if ( (LA21_0==QUOTED_VALUE) ) {
                alt21=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 21, 0, input);

                throw nvae;
            }
            switch (alt21) {
                case 1 :
                    // BELScriptWalker.g:465:21: id= OBJECT_IDENT
                    {
                    _last = (CommonTree)input.LT(1);
                    id=(CommonTree)match(input,OBJECT_IDENT,FOLLOW_OBJECT_IDENT_in_param778);
                    id_tree = (CommonTree)adaptor.dupNode(id);

                    adaptor.addChild(root_0, id_tree);


                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:465:39: quo= QUOTED_VALUE
                    {
                    _last = (CommonTree)input.LT(1);
                    quo=(CommonTree)match(input,QUOTED_VALUE,FOLLOW_QUOTED_VALUE_in_param784);
                    quo_tree = (CommonTree)adaptor.dupNode(quo);

                    adaptor.addChild(root_0, quo_tree);


                    }
                    break;

            }


                    final StringBuilder pBuilder = new StringBuilder();

                    if (nsp != null) {
                        String prefix = nsp.getText();
                        if (!definedNamespaces.containsKey(prefix.substring(0, prefix.length() - 1))) {
                            addError(new NamespaceUndefinedException(nsp.getLine(), nsp.getCharPositionInLine()));
                        }

                        pBuilder.append(prefix);
                    }

                    if (id != null) {
                        pBuilder.append(id.getText());
                    }

                    if (quo != null) {
                        pBuilder.append(quo.getText());
                    }

                    retval.r = pBuilder.toString();
               

            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class function_return extends TreeRuleReturnScope {
        public String r;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "function"
    // BELScriptWalker.g:489:1: function returns [String r] : (fv= 'proteinAbundance' | fv= 'p' | fv= 'rnaAbundance' | fv= 'r' | fv= 'abundance' | fv= 'a' | fv= 'microRNAAbundance' | fv= 'm' | fv= 'geneAbundance' | fv= 'g' | fv= 'biologicalProcess' | fv= 'bp' | fv= 'pathology' | fv= 'path' | fv= 'complexAbundance' | fv= 'complex' | fv= 'translocation' | fv= 'tloc' | fv= 'cellSecretion' | fv= 'sec' | fv= 'cellSurfaceExpression' | fv= 'surf' | fv= 'reaction' | fv= 'rxn' | fv= 'compositeAbundance' | fv= 'composite' | fv= 'fusion' | fv= 'fus' | fv= 'degradation' | fv= 'deg' | fv= 'molecularActivity' | fv= 'act' | fv= 'catalyticActivity' | fv= 'cat' | fv= 'kinaseActivity' | fv= 'kin' | fv= 'phosphataseActivity' | fv= 'phos' | fv= 'peptidaseActivity' | fv= 'pep' | fv= 'ribosylationActivity' | fv= 'ribo' | fv= 'transcriptionalActivity' | fv= 'tscript' | fv= 'transportActivity' | fv= 'tport' | fv= 'gtpBoundActivity' | fv= 'gtp' | fv= 'chaperoneActivity' | fv= 'chap' | fv= 'proteinModification' | fv= 'pmod' | fv= 'substitution' | fv= 'sub' | fv= 'truncation' | fv= 'trunc' | fv= 'reactants' | fv= 'products' | fv= 'list' ) ;
    public final BELScriptWalker.function_return function() throws RecognitionException {
        BELScriptWalker.function_return retval = new BELScriptWalker.function_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree fv=null;

        CommonTree fv_tree=null;

        try {
            // BELScriptWalker.g:489:28: ( (fv= 'proteinAbundance' | fv= 'p' | fv= 'rnaAbundance' | fv= 'r' | fv= 'abundance' | fv= 'a' | fv= 'microRNAAbundance' | fv= 'm' | fv= 'geneAbundance' | fv= 'g' | fv= 'biologicalProcess' | fv= 'bp' | fv= 'pathology' | fv= 'path' | fv= 'complexAbundance' | fv= 'complex' | fv= 'translocation' | fv= 'tloc' | fv= 'cellSecretion' | fv= 'sec' | fv= 'cellSurfaceExpression' | fv= 'surf' | fv= 'reaction' | fv= 'rxn' | fv= 'compositeAbundance' | fv= 'composite' | fv= 'fusion' | fv= 'fus' | fv= 'degradation' | fv= 'deg' | fv= 'molecularActivity' | fv= 'act' | fv= 'catalyticActivity' | fv= 'cat' | fv= 'kinaseActivity' | fv= 'kin' | fv= 'phosphataseActivity' | fv= 'phos' | fv= 'peptidaseActivity' | fv= 'pep' | fv= 'ribosylationActivity' | fv= 'ribo' | fv= 'transcriptionalActivity' | fv= 'tscript' | fv= 'transportActivity' | fv= 'tport' | fv= 'gtpBoundActivity' | fv= 'gtp' | fv= 'chaperoneActivity' | fv= 'chap' | fv= 'proteinModification' | fv= 'pmod' | fv= 'substitution' | fv= 'sub' | fv= 'truncation' | fv= 'trunc' | fv= 'reactants' | fv= 'products' | fv= 'list' ) )
            // BELScriptWalker.g:490:5: (fv= 'proteinAbundance' | fv= 'p' | fv= 'rnaAbundance' | fv= 'r' | fv= 'abundance' | fv= 'a' | fv= 'microRNAAbundance' | fv= 'm' | fv= 'geneAbundance' | fv= 'g' | fv= 'biologicalProcess' | fv= 'bp' | fv= 'pathology' | fv= 'path' | fv= 'complexAbundance' | fv= 'complex' | fv= 'translocation' | fv= 'tloc' | fv= 'cellSecretion' | fv= 'sec' | fv= 'cellSurfaceExpression' | fv= 'surf' | fv= 'reaction' | fv= 'rxn' | fv= 'compositeAbundance' | fv= 'composite' | fv= 'fusion' | fv= 'fus' | fv= 'degradation' | fv= 'deg' | fv= 'molecularActivity' | fv= 'act' | fv= 'catalyticActivity' | fv= 'cat' | fv= 'kinaseActivity' | fv= 'kin' | fv= 'phosphataseActivity' | fv= 'phos' | fv= 'peptidaseActivity' | fv= 'pep' | fv= 'ribosylationActivity' | fv= 'ribo' | fv= 'transcriptionalActivity' | fv= 'tscript' | fv= 'transportActivity' | fv= 'tport' | fv= 'gtpBoundActivity' | fv= 'gtp' | fv= 'chaperoneActivity' | fv= 'chap' | fv= 'proteinModification' | fv= 'pmod' | fv= 'substitution' | fv= 'sub' | fv= 'truncation' | fv= 'trunc' | fv= 'reactants' | fv= 'products' | fv= 'list' )
            {
            root_0 = (CommonTree)adaptor.nil();

            // BELScriptWalker.g:490:5: (fv= 'proteinAbundance' | fv= 'p' | fv= 'rnaAbundance' | fv= 'r' | fv= 'abundance' | fv= 'a' | fv= 'microRNAAbundance' | fv= 'm' | fv= 'geneAbundance' | fv= 'g' | fv= 'biologicalProcess' | fv= 'bp' | fv= 'pathology' | fv= 'path' | fv= 'complexAbundance' | fv= 'complex' | fv= 'translocation' | fv= 'tloc' | fv= 'cellSecretion' | fv= 'sec' | fv= 'cellSurfaceExpression' | fv= 'surf' | fv= 'reaction' | fv= 'rxn' | fv= 'compositeAbundance' | fv= 'composite' | fv= 'fusion' | fv= 'fus' | fv= 'degradation' | fv= 'deg' | fv= 'molecularActivity' | fv= 'act' | fv= 'catalyticActivity' | fv= 'cat' | fv= 'kinaseActivity' | fv= 'kin' | fv= 'phosphataseActivity' | fv= 'phos' | fv= 'peptidaseActivity' | fv= 'pep' | fv= 'ribosylationActivity' | fv= 'ribo' | fv= 'transcriptionalActivity' | fv= 'tscript' | fv= 'transportActivity' | fv= 'tport' | fv= 'gtpBoundActivity' | fv= 'gtp' | fv= 'chaperoneActivity' | fv= 'chap' | fv= 'proteinModification' | fv= 'pmod' | fv= 'substitution' | fv= 'sub' | fv= 'truncation' | fv= 'trunc' | fv= 'reactants' | fv= 'products' | fv= 'list' )
            int alt22=59;
            switch ( input.LA(1) ) {
            case 44:
                {
                alt22=1;
                }
                break;
            case 45:
                {
                alt22=2;
                }
                break;
            case 46:
                {
                alt22=3;
                }
                break;
            case 47:
                {
                alt22=4;
                }
                break;
            case 48:
                {
                alt22=5;
                }
                break;
            case 49:
                {
                alt22=6;
                }
                break;
            case 50:
                {
                alt22=7;
                }
                break;
            case 51:
                {
                alt22=8;
                }
                break;
            case 52:
                {
                alt22=9;
                }
                break;
            case 53:
                {
                alt22=10;
                }
                break;
            case 54:
                {
                alt22=11;
                }
                break;
            case 55:
                {
                alt22=12;
                }
                break;
            case 56:
                {
                alt22=13;
                }
                break;
            case 57:
                {
                alt22=14;
                }
                break;
            case 58:
                {
                alt22=15;
                }
                break;
            case 59:
                {
                alt22=16;
                }
                break;
            case 60:
                {
                alt22=17;
                }
                break;
            case 61:
                {
                alt22=18;
                }
                break;
            case 62:
                {
                alt22=19;
                }
                break;
            case 63:
                {
                alt22=20;
                }
                break;
            case 64:
                {
                alt22=21;
                }
                break;
            case 65:
                {
                alt22=22;
                }
                break;
            case 66:
                {
                alt22=23;
                }
                break;
            case 67:
                {
                alt22=24;
                }
                break;
            case 68:
                {
                alt22=25;
                }
                break;
            case 69:
                {
                alt22=26;
                }
                break;
            case 70:
                {
                alt22=27;
                }
                break;
            case 71:
                {
                alt22=28;
                }
                break;
            case 72:
                {
                alt22=29;
                }
                break;
            case 73:
                {
                alt22=30;
                }
                break;
            case 74:
                {
                alt22=31;
                }
                break;
            case 75:
                {
                alt22=32;
                }
                break;
            case 76:
                {
                alt22=33;
                }
                break;
            case 77:
                {
                alt22=34;
                }
                break;
            case 78:
                {
                alt22=35;
                }
                break;
            case 79:
                {
                alt22=36;
                }
                break;
            case 80:
                {
                alt22=37;
                }
                break;
            case 81:
                {
                alt22=38;
                }
                break;
            case 82:
                {
                alt22=39;
                }
                break;
            case 83:
                {
                alt22=40;
                }
                break;
            case 84:
                {
                alt22=41;
                }
                break;
            case 85:
                {
                alt22=42;
                }
                break;
            case 86:
                {
                alt22=43;
                }
                break;
            case 87:
                {
                alt22=44;
                }
                break;
            case 88:
                {
                alt22=45;
                }
                break;
            case 89:
                {
                alt22=46;
                }
                break;
            case 90:
                {
                alt22=47;
                }
                break;
            case 91:
                {
                alt22=48;
                }
                break;
            case 92:
                {
                alt22=49;
                }
                break;
            case 93:
                {
                alt22=50;
                }
                break;
            case 94:
                {
                alt22=51;
                }
                break;
            case 95:
                {
                alt22=52;
                }
                break;
            case 96:
                {
                alt22=53;
                }
                break;
            case 97:
                {
                alt22=54;
                }
                break;
            case 98:
                {
                alt22=55;
                }
                break;
            case 99:
                {
                alt22=56;
                }
                break;
            case 100:
                {
                alt22=57;
                }
                break;
            case 101:
                {
                alt22=58;
                }
                break;
            case 102:
                {
                alt22=59;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 22, 0, input);

                throw nvae;
            }

            switch (alt22) {
                case 1 :
                    // BELScriptWalker.g:491:9: fv= 'proteinAbundance'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,44,FOLLOW_44_in_function819);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:492:9: fv= 'p'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,45,FOLLOW_45_in_function845);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 3 :
                    // BELScriptWalker.g:493:9: fv= 'rnaAbundance'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,46,FOLLOW_46_in_function886);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 4 :
                    // BELScriptWalker.g:494:9: fv= 'r'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,47,FOLLOW_47_in_function916);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 5 :
                    // BELScriptWalker.g:495:9: fv= 'abundance'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,48,FOLLOW_48_in_function957);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 6 :
                    // BELScriptWalker.g:496:9: fv= 'a'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,49,FOLLOW_49_in_function990);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 7 :
                    // BELScriptWalker.g:497:9: fv= 'microRNAAbundance'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,50,FOLLOW_50_in_function1031);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 8 :
                    // BELScriptWalker.g:498:9: fv= 'm'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,51,FOLLOW_51_in_function1056);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 9 :
                    // BELScriptWalker.g:499:9: fv= 'geneAbundance'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,52,FOLLOW_52_in_function1097);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 10 :
                    // BELScriptWalker.g:500:9: fv= 'g'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,53,FOLLOW_53_in_function1126);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 11 :
                    // BELScriptWalker.g:501:9: fv= 'biologicalProcess'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,54,FOLLOW_54_in_function1167);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 12 :
                    // BELScriptWalker.g:502:9: fv= 'bp'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,55,FOLLOW_55_in_function1192);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 13 :
                    // BELScriptWalker.g:503:9: fv= 'pathology'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,56,FOLLOW_56_in_function1232);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 14 :
                    // BELScriptWalker.g:504:9: fv= 'path'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,57,FOLLOW_57_in_function1265);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 15 :
                    // BELScriptWalker.g:505:9: fv= 'complexAbundance'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,58,FOLLOW_58_in_function1303);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 16 :
                    // BELScriptWalker.g:506:9: fv= 'complex'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,59,FOLLOW_59_in_function1329);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 17 :
                    // BELScriptWalker.g:507:9: fv= 'translocation'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,60,FOLLOW_60_in_function1364);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 18 :
                    // BELScriptWalker.g:508:9: fv= 'tloc'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,61,FOLLOW_61_in_function1393);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 19 :
                    // BELScriptWalker.g:509:9: fv= 'cellSecretion'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,62,FOLLOW_62_in_function1431);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 20 :
                    // BELScriptWalker.g:510:9: fv= 'sec'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,63,FOLLOW_63_in_function1460);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 21 :
                    // BELScriptWalker.g:511:9: fv= 'cellSurfaceExpression'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,64,FOLLOW_64_in_function1499);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 22 :
                    // BELScriptWalker.g:512:9: fv= 'surf'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,65,FOLLOW_65_in_function1520);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 23 :
                    // BELScriptWalker.g:513:9: fv= 'reaction'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,66,FOLLOW_66_in_function1558);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 24 :
                    // BELScriptWalker.g:514:9: fv= 'rxn'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,67,FOLLOW_67_in_function1592);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 25 :
                    // BELScriptWalker.g:515:9: fv= 'compositeAbundance'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,68,FOLLOW_68_in_function1631);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 26 :
                    // BELScriptWalker.g:516:9: fv= 'composite'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,69,FOLLOW_69_in_function1655);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 27 :
                    // BELScriptWalker.g:517:9: fv= 'fusion'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,70,FOLLOW_70_in_function1688);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 28 :
                    // BELScriptWalker.g:518:9: fv= 'fus'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,71,FOLLOW_71_in_function1724);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 29 :
                    // BELScriptWalker.g:519:9: fv= 'degradation'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,72,FOLLOW_72_in_function1763);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 30 :
                    // BELScriptWalker.g:520:9: fv= 'deg'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,73,FOLLOW_73_in_function1794);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 31 :
                    // BELScriptWalker.g:521:9: fv= 'molecularActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,74,FOLLOW_74_in_function1833);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 32 :
                    // BELScriptWalker.g:522:9: fv= 'act'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,75,FOLLOW_75_in_function1858);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 33 :
                    // BELScriptWalker.g:523:9: fv= 'catalyticActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,76,FOLLOW_76_in_function1897);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 34 :
                    // BELScriptWalker.g:524:9: fv= 'cat'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,77,FOLLOW_77_in_function1922);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 35 :
                    // BELScriptWalker.g:525:9: fv= 'kinaseActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,78,FOLLOW_78_in_function1961);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 36 :
                    // BELScriptWalker.g:526:9: fv= 'kin'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,79,FOLLOW_79_in_function1989);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 37 :
                    // BELScriptWalker.g:527:9: fv= 'phosphataseActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,80,FOLLOW_80_in_function2028);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 38 :
                    // BELScriptWalker.g:528:9: fv= 'phos'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,81,FOLLOW_81_in_function2051);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 39 :
                    // BELScriptWalker.g:529:9: fv= 'peptidaseActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,82,FOLLOW_82_in_function2089);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 40 :
                    // BELScriptWalker.g:530:9: fv= 'pep'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,83,FOLLOW_83_in_function2114);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 41 :
                    // BELScriptWalker.g:531:9: fv= 'ribosylationActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,84,FOLLOW_84_in_function2153);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 42 :
                    // BELScriptWalker.g:532:9: fv= 'ribo'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,85,FOLLOW_85_in_function2175);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 43 :
                    // BELScriptWalker.g:533:9: fv= 'transcriptionalActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,86,FOLLOW_86_in_function2213);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 44 :
                    // BELScriptWalker.g:534:9: fv= 'tscript'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,87,FOLLOW_87_in_function2232);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 45 :
                    // BELScriptWalker.g:535:9: fv= 'transportActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,88,FOLLOW_88_in_function2267);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 46 :
                    // BELScriptWalker.g:536:9: fv= 'tport'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,89,FOLLOW_89_in_function2292);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 47 :
                    // BELScriptWalker.g:537:9: fv= 'gtpBoundActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,90,FOLLOW_90_in_function2329);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 48 :
                    // BELScriptWalker.g:538:9: fv= 'gtp'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,91,FOLLOW_91_in_function2355);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 49 :
                    // BELScriptWalker.g:539:9: fv= 'chaperoneActivity'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,92,FOLLOW_92_in_function2394);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 50 :
                    // BELScriptWalker.g:540:9: fv= 'chap'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,93,FOLLOW_93_in_function2419);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 51 :
                    // BELScriptWalker.g:541:9: fv= 'proteinModification'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,94,FOLLOW_94_in_function2457);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 52 :
                    // BELScriptWalker.g:542:9: fv= 'pmod'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,95,FOLLOW_95_in_function2480);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 53 :
                    // BELScriptWalker.g:543:9: fv= 'substitution'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,96,FOLLOW_96_in_function2518);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 54 :
                    // BELScriptWalker.g:544:9: fv= 'sub'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,97,FOLLOW_97_in_function2548);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 55 :
                    // BELScriptWalker.g:545:9: fv= 'truncation'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,98,FOLLOW_98_in_function2587);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 56 :
                    // BELScriptWalker.g:546:9: fv= 'trunc'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,99,FOLLOW_99_in_function2619);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 57 :
                    // BELScriptWalker.g:547:9: fv= 'reactants'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,100,FOLLOW_100_in_function2656);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 58 :
                    // BELScriptWalker.g:548:9: fv= 'products'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,101,FOLLOW_101_in_function2689);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;
                case 59 :
                    // BELScriptWalker.g:549:9: fv= 'list'
                    {
                    _last = (CommonTree)input.LT(1);
                    fv=(CommonTree)match(input,102,FOLLOW_102_in_function2723);
                    fv_tree = (CommonTree)adaptor.dupNode(fv);

                    adaptor.addChild(root_0, fv_tree);

                     retval.r = fv.getText();

                    }
                    break;

            }


            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    public static class relationship_return extends TreeRuleReturnScope {
        public String r;
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start "relationship"
    // BELScriptWalker.g:553:1: relationship returns [String r] : (rv= 'increases' | rv= '->' | rv= 'decreases' | rv= '-|' | rv= 'directlyIncreases' | rv= '=>' | rv= 'directlyDecreases' | rv= '=|' | rv= 'causesNoChange' | rv= 'positiveCorrelation' | rv= 'negativeCorrelation' | rv= 'translatedTo' | rv= '>>' | rv= 'transcribedTo' | rv= ':>' | rv= 'isA' | rv= 'subProcessOf' | rv= 'rateLimitingStepOf' | rv= 'biomarkerFor' | rv= 'prognosticBiomarkerFor' | rv= 'orthologous' | rv= 'analogous' | rv= 'association' | rv= '--' | rv= 'hasMembers' | rv= 'hasComponents' | rv= 'hasMember' | rv= 'hasComponent' ) ;
    public final BELScriptWalker.relationship_return relationship() throws RecognitionException {
        BELScriptWalker.relationship_return retval = new BELScriptWalker.relationship_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        CommonTree _first_0 = null;
        CommonTree _last = null;

        CommonTree rv=null;

        CommonTree rv_tree=null;

        try {
            // BELScriptWalker.g:553:32: ( (rv= 'increases' | rv= '->' | rv= 'decreases' | rv= '-|' | rv= 'directlyIncreases' | rv= '=>' | rv= 'directlyDecreases' | rv= '=|' | rv= 'causesNoChange' | rv= 'positiveCorrelation' | rv= 'negativeCorrelation' | rv= 'translatedTo' | rv= '>>' | rv= 'transcribedTo' | rv= ':>' | rv= 'isA' | rv= 'subProcessOf' | rv= 'rateLimitingStepOf' | rv= 'biomarkerFor' | rv= 'prognosticBiomarkerFor' | rv= 'orthologous' | rv= 'analogous' | rv= 'association' | rv= '--' | rv= 'hasMembers' | rv= 'hasComponents' | rv= 'hasMember' | rv= 'hasComponent' ) )
            // BELScriptWalker.g:554:5: (rv= 'increases' | rv= '->' | rv= 'decreases' | rv= '-|' | rv= 'directlyIncreases' | rv= '=>' | rv= 'directlyDecreases' | rv= '=|' | rv= 'causesNoChange' | rv= 'positiveCorrelation' | rv= 'negativeCorrelation' | rv= 'translatedTo' | rv= '>>' | rv= 'transcribedTo' | rv= ':>' | rv= 'isA' | rv= 'subProcessOf' | rv= 'rateLimitingStepOf' | rv= 'biomarkerFor' | rv= 'prognosticBiomarkerFor' | rv= 'orthologous' | rv= 'analogous' | rv= 'association' | rv= '--' | rv= 'hasMembers' | rv= 'hasComponents' | rv= 'hasMember' | rv= 'hasComponent' )
            {
            root_0 = (CommonTree)adaptor.nil();

            // BELScriptWalker.g:554:5: (rv= 'increases' | rv= '->' | rv= 'decreases' | rv= '-|' | rv= 'directlyIncreases' | rv= '=>' | rv= 'directlyDecreases' | rv= '=|' | rv= 'causesNoChange' | rv= 'positiveCorrelation' | rv= 'negativeCorrelation' | rv= 'translatedTo' | rv= '>>' | rv= 'transcribedTo' | rv= ':>' | rv= 'isA' | rv= 'subProcessOf' | rv= 'rateLimitingStepOf' | rv= 'biomarkerFor' | rv= 'prognosticBiomarkerFor' | rv= 'orthologous' | rv= 'analogous' | rv= 'association' | rv= '--' | rv= 'hasMembers' | rv= 'hasComponents' | rv= 'hasMember' | rv= 'hasComponent' )
            int alt23=28;
            switch ( input.LA(1) ) {
            case 103:
                {
                alt23=1;
                }
                break;
            case 104:
                {
                alt23=2;
                }
                break;
            case 105:
                {
                alt23=3;
                }
                break;
            case 106:
                {
                alt23=4;
                }
                break;
            case 107:
                {
                alt23=5;
                }
                break;
            case 108:
                {
                alt23=6;
                }
                break;
            case 109:
                {
                alt23=7;
                }
                break;
            case 110:
                {
                alt23=8;
                }
                break;
            case 111:
                {
                alt23=9;
                }
                break;
            case 112:
                {
                alt23=10;
                }
                break;
            case 113:
                {
                alt23=11;
                }
                break;
            case 114:
                {
                alt23=12;
                }
                break;
            case 115:
                {
                alt23=13;
                }
                break;
            case 116:
                {
                alt23=14;
                }
                break;
            case 117:
                {
                alt23=15;
                }
                break;
            case 118:
                {
                alt23=16;
                }
                break;
            case 119:
                {
                alt23=17;
                }
                break;
            case 120:
                {
                alt23=18;
                }
                break;
            case 121:
                {
                alt23=19;
                }
                break;
            case 122:
                {
                alt23=20;
                }
                break;
            case 123:
                {
                alt23=21;
                }
                break;
            case 124:
                {
                alt23=22;
                }
                break;
            case 125:
                {
                alt23=23;
                }
                break;
            case 126:
                {
                alt23=24;
                }
                break;
            case 127:
                {
                alt23=25;
                }
                break;
            case 128:
                {
                alt23=26;
                }
                break;
            case 129:
                {
                alt23=27;
                }
                break;
            case 130:
                {
                alt23=28;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 23, 0, input);

                throw nvae;
            }

            switch (alt23) {
                case 1 :
                    // BELScriptWalker.g:555:9: rv= 'increases'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,103,FOLLOW_103_in_relationship2785);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 2 :
                    // BELScriptWalker.g:556:9: rv= '->'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,104,FOLLOW_104_in_relationship2818);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 3 :
                    // BELScriptWalker.g:557:9: rv= 'decreases'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,105,FOLLOW_105_in_relationship2858);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 4 :
                    // BELScriptWalker.g:558:9: rv= '-|'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,106,FOLLOW_106_in_relationship2891);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 5 :
                    // BELScriptWalker.g:559:9: rv= 'directlyIncreases'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,107,FOLLOW_107_in_relationship2931);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 6 :
                    // BELScriptWalker.g:560:9: rv= '=>'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,108,FOLLOW_108_in_relationship2956);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 7 :
                    // BELScriptWalker.g:561:9: rv= 'directlyDecreases'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,109,FOLLOW_109_in_relationship2996);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 8 :
                    // BELScriptWalker.g:562:9: rv= '=|'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,110,FOLLOW_110_in_relationship3021);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 9 :
                    // BELScriptWalker.g:563:9: rv= 'causesNoChange'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,111,FOLLOW_111_in_relationship3061);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 10 :
                    // BELScriptWalker.g:564:9: rv= 'positiveCorrelation'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,112,FOLLOW_112_in_relationship3089);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 11 :
                    // BELScriptWalker.g:565:9: rv= 'negativeCorrelation'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,113,FOLLOW_113_in_relationship3112);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 12 :
                    // BELScriptWalker.g:566:9: rv= 'translatedTo'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,114,FOLLOW_114_in_relationship3135);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 13 :
                    // BELScriptWalker.g:567:9: rv= '>>'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,115,FOLLOW_115_in_relationship3165);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 14 :
                    // BELScriptWalker.g:568:9: rv= 'transcribedTo'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,116,FOLLOW_116_in_relationship3205);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 15 :
                    // BELScriptWalker.g:569:9: rv= ':>'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,117,FOLLOW_117_in_relationship3234);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 16 :
                    // BELScriptWalker.g:570:9: rv= 'isA'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,118,FOLLOW_118_in_relationship3274);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 17 :
                    // BELScriptWalker.g:571:9: rv= 'subProcessOf'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,119,FOLLOW_119_in_relationship3313);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 18 :
                    // BELScriptWalker.g:572:9: rv= 'rateLimitingStepOf'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,120,FOLLOW_120_in_relationship3343);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 19 :
                    // BELScriptWalker.g:573:9: rv= 'biomarkerFor'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,121,FOLLOW_121_in_relationship3367);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 20 :
                    // BELScriptWalker.g:574:9: rv= 'prognosticBiomarkerFor'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,122,FOLLOW_122_in_relationship3397);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 21 :
                    // BELScriptWalker.g:575:9: rv= 'orthologous'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,123,FOLLOW_123_in_relationship3417);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 22 :
                    // BELScriptWalker.g:576:9: rv= 'analogous'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,124,FOLLOW_124_in_relationship3448);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 23 :
                    // BELScriptWalker.g:577:9: rv= 'association'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,125,FOLLOW_125_in_relationship3481);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 24 :
                    // BELScriptWalker.g:578:9: rv= '--'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,126,FOLLOW_126_in_relationship3512);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 25 :
                    // BELScriptWalker.g:579:9: rv= 'hasMembers'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,127,FOLLOW_127_in_relationship3552);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 26 :
                    // BELScriptWalker.g:580:9: rv= 'hasComponents'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,128,FOLLOW_128_in_relationship3584);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 27 :
                    // BELScriptWalker.g:581:9: rv= 'hasMember'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,129,FOLLOW_129_in_relationship3613);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;
                case 28 :
                    // BELScriptWalker.g:582:9: rv= 'hasComponent'
                    {
                    _last = (CommonTree)input.LT(1);
                    rv=(CommonTree)match(input,130,FOLLOW_130_in_relationship3646);
                    rv_tree = (CommonTree)adaptor.dupNode(rv);

                    adaptor.addChild(root_0, rv_tree);

                     retval.r = rv.getText();

                    }
                    break;

            }


            }

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);

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

    // Delegated rules


    protected DFA2 dfa2 = new DFA2(this);
    static final String DFA2_eotS =
        "\14\uffff";
    static final String DFA2_eofS =
        "\14\uffff";
    static final String DFA2_minS =
        "\1\30\1\34\1\6\1\7\10\uffff";
    static final String DFA2_maxS =
        "\1\146\1\40\1\11\1\12\10\uffff";
    static final String DFA2_acceptS =
        "\4\uffff\1\10\1\2\1\1\1\3\1\4\1\5\1\6\1\7";
    static final String DFA2_specialS =
        "\14\uffff}>";
    static final String[] DFA2_transitionS = {
            "\1\2\1\uffff\1\3\1\1\20\uffff\73\4",
            "\2\6\2\uffff\1\5",
            "\1\10\1\7\1\uffff\1\11",
            "\1\13\1\uffff\1\12\1\13",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            ""
    };

    static final short[] DFA2_eot = DFA.unpackEncodedString(DFA2_eotS);
    static final short[] DFA2_eof = DFA.unpackEncodedString(DFA2_eofS);
    static final char[] DFA2_min = DFA.unpackEncodedStringToUnsignedChars(DFA2_minS);
    static final char[] DFA2_max = DFA.unpackEncodedStringToUnsignedChars(DFA2_maxS);
    static final short[] DFA2_accept = DFA.unpackEncodedString(DFA2_acceptS);
    static final short[] DFA2_special = DFA.unpackEncodedString(DFA2_specialS);
    static final short[][] DFA2_transition;

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

    class DFA2 extends DFA {

        public DFA2(BaseRecognizer recognizer) {
            this.recognizer = recognizer;
            this.decisionNumber = 2;
            this.eot = DFA2_eot;
            this.eof = DFA2_eof;
            this.min = DFA2_min;
            this.max = DFA2_max;
            this.accept = DFA2_accept;
            this.special = DFA2_special;
            this.transition = DFA2_transition;
        }
        public String getDescription() {
            return "118:5: ( define_namespace | define_annotation | set_annotation | set_document | set_statement_group | unset_statement_group | unset | statement )";
        }
    }

    public static final BitSet FOLLOW_NEWLINE_in_document67 = new BitSet(new long[]{0xFFFFF0000D000030L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_DOCUMENT_COMMENT_in_document71 = new BitSet(new long[]{0xFFFFF0000D000030L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_record_in_document75 = new BitSet(new long[]{0xFFFFF0000D000030L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_EOF_in_document79 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_define_namespace_in_record98 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_define_annotation_in_record102 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_annotation_in_record106 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_document_in_record110 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_statement_group_in_record114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_unset_statement_group_in_record118 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_unset_in_record122 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_statement_in_record126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_set_document144 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_DOCUMENT_KEYWORD_in_set_document148 = new BitSet(new long[]{0x000007F800000000L});
    public static final BitSet FOLLOW_document_property_in_set_document153 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_25_in_set_document155 = new BitSet(new long[]{0x0000000000000880L});
    public static final BitSet FOLLOW_QUOTED_VALUE_in_set_document160 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_OBJECT_IDENT_in_set_document166 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_set_statement_group185 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_STATEMENT_GROUP_KEYWORD_in_set_statement_group187 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_25_in_set_statement_group189 = new BitSet(new long[]{0x0000000000000880L});
    public static final BitSet FOLLOW_QUOTED_VALUE_in_set_statement_group194 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_OBJECT_IDENT_in_set_statement_group200 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_24_in_set_annotation219 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_OBJECT_IDENT_in_set_annotation223 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_25_in_set_annotation225 = new BitSet(new long[]{0x0000000000000980L});
    public static final BitSet FOLLOW_QUOTED_VALUE_in_set_annotation230 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_VALUE_LIST_in_set_annotation236 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_OBJECT_IDENT_in_set_annotation242 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_unset_statement_group261 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_STATEMENT_GROUP_KEYWORD_in_unset_statement_group263 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_26_in_unset281 = new BitSet(new long[]{0x0000000000000480L});
    public static final BitSet FOLLOW_OBJECT_IDENT_in_unset286 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_IDENT_LIST_in_unset292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_define_namespace312 = new BitSet(new long[]{0x0000000030000000L});
    public static final BitSet FOLLOW_28_in_define_namespace318 = new BitSet(new long[]{0x0000000020000000L});
    public static final BitSet FOLLOW_29_in_define_namespace322 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_OBJECT_IDENT_in_define_namespace328 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_30_in_define_namespace330 = new BitSet(new long[]{0x0000000080000000L});
    public static final BitSet FOLLOW_31_in_define_namespace332 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_QUOTED_VALUE_in_define_namespace336 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_27_in_define_annotation355 = new BitSet(new long[]{0x0000000100000000L});
    public static final BitSet FOLLOW_32_in_define_annotation357 = new BitSet(new long[]{0x0000000000000080L});
    public static final BitSet FOLLOW_OBJECT_IDENT_in_define_annotation362 = new BitSet(new long[]{0x0000000040000000L});
    public static final BitSet FOLLOW_30_in_define_annotation364 = new BitSet(new long[]{0x0000000680000000L});
    public static final BitSet FOLLOW_31_in_define_annotation371 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_33_in_define_annotation377 = new BitSet(new long[]{0x0000000000000800L});
    public static final BitSet FOLLOW_QUOTED_VALUE_in_define_annotation382 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_34_in_define_annotation390 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_VALUE_LIST_in_define_annotation394 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_35_in_document_property420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_36_in_document_property436 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_37_in_document_property448 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_38_in_document_property462 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_39_in_document_property474 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_40_in_document_property487 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_41_in_document_property502 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_42_in_document_property521 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_outer_term_in_statement545 = new BitSet(new long[]{0x0000000000004002L,0xFFFFFF8000000000L,0x0000000000000007L});
    public static final BitSet FOLLOW_relationship_in_statement550 = new BitSet(new long[]{0xFFFFF0000D001030L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_OPEN_PAREN_in_statement554 = new BitSet(new long[]{0xFFFFF0000D000030L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_outer_term_in_statement558 = new BitSet(new long[]{0x0000000000000000L,0xFFFFFF8000000000L,0x0000000000000007L});
    public static final BitSet FOLLOW_relationship_in_statement562 = new BitSet(new long[]{0xFFFFF0000D000030L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_outer_term_in_statement566 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_CLOSE_PAREN_in_statement568 = new BitSet(new long[]{0x0000000000004002L});
    public static final BitSet FOLLOW_outer_term_in_statement575 = new BitSet(new long[]{0x0000000000004002L});
    public static final BitSet FOLLOW_STATEMENT_COMMENT_in_statement582 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_function_in_outer_term613 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_OPEN_PAREN_in_outer_term619 = new BitSet(new long[]{0xFFFFF8000D00A8B0L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_43_in_outer_term626 = new BitSet(new long[]{0xFFFFF8000D0088B0L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_argument_in_outer_term633 = new BitSet(new long[]{0xFFFFF8000D00A8B0L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_CLOSE_PAREN_in_outer_term641 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_param_in_argument665 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_term_in_argument677 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_function_in_term707 = new BitSet(new long[]{0x0000000000001000L});
    public static final BitSet FOLLOW_OPEN_PAREN_in_term713 = new BitSet(new long[]{0xFFFFF8000D00A8B0L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_43_in_term719 = new BitSet(new long[]{0xFFFFF8000D0088B0L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_term_in_term727 = new BitSet(new long[]{0xFFFFF8000D00A8B0L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_param_in_term735 = new BitSet(new long[]{0xFFFFF8000D00A8B0L,0x0000007FFFFFFFFFL});
    public static final BitSet FOLLOW_CLOSE_PAREN_in_term744 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NS_PREFIX_in_param772 = new BitSet(new long[]{0x0000000000000880L});
    public static final BitSet FOLLOW_OBJECT_IDENT_in_param778 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_QUOTED_VALUE_in_param784 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_44_in_function819 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_45_in_function845 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_46_in_function886 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_47_in_function916 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_48_in_function957 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_49_in_function990 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_50_in_function1031 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_51_in_function1056 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_52_in_function1097 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_53_in_function1126 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_54_in_function1167 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_55_in_function1192 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_56_in_function1232 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_57_in_function1265 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_58_in_function1303 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_59_in_function1329 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_60_in_function1364 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_61_in_function1393 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_62_in_function1431 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_63_in_function1460 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_64_in_function1499 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_65_in_function1520 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_66_in_function1558 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_67_in_function1592 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_68_in_function1631 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_69_in_function1655 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_70_in_function1688 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_71_in_function1724 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_72_in_function1763 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_73_in_function1794 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_74_in_function1833 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_75_in_function1858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_76_in_function1897 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_77_in_function1922 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_78_in_function1961 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_79_in_function1989 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_80_in_function2028 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_81_in_function2051 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_82_in_function2089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_83_in_function2114 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_84_in_function2153 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_85_in_function2175 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_86_in_function2213 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_87_in_function2232 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_88_in_function2267 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_89_in_function2292 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_90_in_function2329 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_91_in_function2355 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_92_in_function2394 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_93_in_function2419 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_94_in_function2457 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_95_in_function2480 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_96_in_function2518 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_97_in_function2548 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_98_in_function2587 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_99_in_function2619 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_100_in_function2656 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_101_in_function2689 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_102_in_function2723 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_103_in_relationship2785 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_104_in_relationship2818 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_105_in_relationship2858 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_106_in_relationship2891 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_107_in_relationship2931 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_108_in_relationship2956 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_109_in_relationship2996 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_110_in_relationship3021 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_111_in_relationship3061 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_112_in_relationship3089 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_113_in_relationship3112 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_114_in_relationship3135 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_115_in_relationship3165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_116_in_relationship3205 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_117_in_relationship3234 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_118_in_relationship3274 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_119_in_relationship3313 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_120_in_relationship3343 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_121_in_relationship3367 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_122_in_relationship3397 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_123_in_relationship3417 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_124_in_relationship3448 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_125_in_relationship3481 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_126_in_relationship3512 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_127_in_relationship3552 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_128_in_relationship3584 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_129_in_relationship3613 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_130_in_relationship3646 = new BitSet(new long[]{0x0000000000000002L});

}
TOP

Related Classes of org.openbel.framework.common.bel.parser.BELScriptWalker

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.