$ANTLR start synpred39_InternalPureXbase
10291
public final void synpred39_InternalPureXbase_fragment() throws RecognitionException {   
        // InternalPureXbase.g:4873:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
        // InternalPureXbase.g:4873:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        {
        // InternalPureXbase.g:4873:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        // InternalPureXbase.g:4874:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
        {
        // InternalPureXbase.g:4874:7: ()
        // InternalPureXbase.g:4875:7: 
        {
        }

        // InternalPureXbase.g:4876:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
        int alt134=2;
        int LA134_0 = input.LA(1);

        if ( (LA134_0==RULE_ID||LA134_0==15||LA134_0==41) ) {
            alt134=1;
        }
        switch (alt134) {
            case 1 :
                // InternalPureXbase.g:4877:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                {
                // InternalPureXbase.g:4877:8: ( ( ruleJvmFormalParameter ) )
                // InternalPureXbase.g:4878:9: ( ruleJvmFormalParameter )
                {
                // InternalPureXbase.g:4878:9: ( ruleJvmFormalParameter )
                // InternalPureXbase.g:4879:10: ruleJvmFormalParameter
                {
                pushFollow(FOLLOW_47);
                ruleJvmFormalParameter();

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

                }


                }

                // InternalPureXbase.g:4882:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                loop133:
                do {
                    int alt133=2;
                    int LA133_0 = input.LA(1);

                    if ( (LA133_0==57) ) {
                        alt133=1;
                    }


                    switch (alt133) {
                	case 1 :
                	    // InternalPureXbase.g:4883:9: ',' ( ( ruleJvmFormalParameter ) )
                	    {
                	    match(input,57,FOLLOW_11); if (state.failed) return ;
                	    // InternalPureXbase.g:4884:9: ( ( ruleJvmFormalParameter ) )
                	    // InternalPureXbase.g:4885:10: ( ruleJvmFormalParameter )
                	    {
                	    // InternalPureXbase.g:4885:10: ( ruleJvmFormalParameter )
                	    // InternalPureXbase.g:4886:11: ruleJvmFormalParameter
                	    {
                	    pushFollow(FOLLOW_47);
                	    ruleJvmFormalParameter();

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

                	    }


                	    }


                	    }
                	    break;

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


                }
                break;

        }

        // InternalPureXbase.g:4891:7: ( ( '|' ) )
        // InternalPureXbase.g:4892:8: ( '|' )
        {
        // InternalPureXbase.g:4892:8: ( '|' )
        // InternalPureXbase.g:4893:9: '|'
        {
        match(input,63,FOLLOW_2); if (state.failed) return ;

        }


        }


        }


        }
    }
162031
public final void synpred29_InternalXbase_fragment() throws RecognitionException {   
        // InternalXbase.g:3868:5: ( ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) ) )
        // InternalXbase.g:3868:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
        {
        // InternalXbase.g:3868:6: ( ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) ) )
        // InternalXbase.g:3869:6: ( ( ruleJvmTypeReference ) ) ( ( ruleValidID ) )
        {
        // InternalXbase.g:3869:6: ( ( ruleJvmTypeReference ) )
        // InternalXbase.g:3870:7: ( ruleJvmTypeReference )
        {
        // InternalXbase.g:3870:7: ( ruleJvmTypeReference )
        // InternalXbase.g:3871:8: ruleJvmTypeReference
        {
        pushFollow(FOLLOW_61);
        ruleJvmTypeReference();

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

        }


        }

        // InternalXbase.g:3874:6: ( ( ruleValidID ) )
        // InternalXbase.g:3875:7: ( ruleValidID )
        {
        // InternalXbase.g:3875:7: ( ruleValidID )
        // InternalXbase.g:3876:8: ruleValidID
        {
        pushFollow(FOLLOW_2);
        ruleValidID();

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

        }


        }


        }


        }
    }
1202090
public final void synpred20_InternalSimpleAntlr_fragment() throws RecognitionException {   
        EObject this_Parenthesized_4 = null;


        // InternalSimpleAntlr.g:813:2: (this_Parenthesized_4= ruleParenthesized )
        // InternalSimpleAntlr.g:813:2: this_Parenthesized_4= ruleParenthesized
        {
        if ( state.backtracking==0 ) {
           
          	  /* */ 
          	
        }
        pushFollow(FOLLOW_2);
        this_Parenthesized_4=ruleParenthesized();

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

        }
    }
315534
private final void internalBuildTailoring(String rules) throws Exception {
        CollationTailoring base = CollationRoot.getRoot();
        // Most code using Collator does not need to build a Collator from rules.
        // By using reflection, most code will not have a static dependency on the builder code.
        // CollationBuilder builder = new CollationBuilder(base);
        ClassLoader classLoader = ClassLoaderUtil.getClassLoader(getClass());
        CollationTailoring t;
        try {
            Class<?> builderClass = classLoader.loadClass("android.icu.impl.coll.CollationBuilder");
            Object builder = builderClass.getConstructor(CollationTailoring.class).newInstance(base);
            // builder.parseAndBuild(rules);
            Method parseAndBuild = builderClass.getMethod("parseAndBuild", String.class);
            t = (CollationTailoring)parseAndBuild.invoke(builder, rules);
        } catch(InvocationTargetException e) {
            throw (Exception)e.getTargetException();
        }
        t.actualLocale = null;
        adoptTailoring(t);
    }
1044980
public final void synpred19_InternalSimpleAntlr_fragment() throws RecognitionException {   
        EObject this_Predicated_3 = null;


        // InternalSimpleAntlr.g:800:2: (this_Predicated_3= rulePredicated )
        // InternalSimpleAntlr.g:800:2: this_Predicated_3= rulePredicated
        {
        if ( state.backtracking==0 ) {
           
          	  /* */ 
          	
        }
        pushFollow(FOLLOW_2);
        this_Predicated_3=rulePredicated();

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

        }
    }
1258885
public final void synpred15_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:1540:6: ( ( '<' '<' ) )
        // InternalXbaseWithAnnotations.g:1540:7: ( '<' '<' )
        {
        // InternalXbaseWithAnnotations.g:1540:7: ( '<' '<' )
        // InternalXbaseWithAnnotations.g:1541:7: '<' '<'
        {
        match(input,26,FOLLOW_15); if (state.failed) return ;
        match(input,26,FOLLOW_2); if (state.failed) return ;

        }


        }
    }
497907
public final void synpred22_InternalPureXbase_fragment() throws RecognitionException {   
        // InternalPureXbase.g:2301:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
        // InternalPureXbase.g:2301:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
        {
        // InternalPureXbase.g:2301:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
        // InternalPureXbase.g:2302:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
        {
        // InternalPureXbase.g:2302:7: ()
        // InternalPureXbase.g:2303:7: 
        {
        }

        // InternalPureXbase.g:2304:7: ( '.' | ( ( '::' ) ) )
        int alt125=2;
        int LA125_0 = input.LA(1);

        if ( (LA125_0==54) ) {
            alt125=1;
        }
        else if ( (LA125_0==55) ) {
            alt125=2;
        }
        else {
            if (state.backtracking>0) {state.failed=true; return ;}
            NoViableAltException nvae =
                new NoViableAltException("", 125, 0, input);

            throw nvae;
        }
        switch (alt125) {
            case 1 :
                // InternalPureXbase.g:2305:8: '.'
                {
                match(input,54,FOLLOW_12); if (state.failed) return ;

                }
                break;
            case 2 :
                // InternalPureXbase.g:2307:8: ( ( '::' ) )
                {
                // InternalPureXbase.g:2307:8: ( ( '::' ) )
                // InternalPureXbase.g:2308:9: ( '::' )
                {
                // InternalPureXbase.g:2308:9: ( '::' )
                // InternalPureXbase.g:2309:10: '::'
                {
                match(input,55,FOLLOW_12); if (state.failed) return ;

                }


                }


                }
                break;

        }

        // InternalPureXbase.g:2313:7: ( ( ruleFeatureCallID ) )
        // InternalPureXbase.g:2314:8: ( ruleFeatureCallID )
        {
        // InternalPureXbase.g:2314:8: ( ruleFeatureCallID )
        // InternalPureXbase.g:2315:9: ruleFeatureCallID
        {
        pushFollow(FOLLOW_13);
        ruleFeatureCallID();

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

        }


        }

        pushFollow(FOLLOW_2);
        ruleOpSingleAssign();

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

        }


        }
    }
481359
public final void synpred43_InternalPureXbase_fragment() throws RecognitionException {   
        // InternalPureXbase.g:5153:6: ( ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
        // InternalPureXbase.g:5153:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        {
        // InternalPureXbase.g:5153:7: ( () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        // InternalPureXbase.g:5154:7: () ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
        {
        // InternalPureXbase.g:5154:7: ()
        // InternalPureXbase.g:5155:7: 
        {
        }

        // InternalPureXbase.g:5156:7: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
        int alt136=2;
        int LA136_0 = input.LA(1);

        if ( (LA136_0==RULE_ID||LA136_0==15||LA136_0==41) ) {
            alt136=1;
        }
        switch (alt136) {
            case 1 :
                // InternalPureXbase.g:5157:8: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                {
                // InternalPureXbase.g:5157:8: ( ( ruleJvmFormalParameter ) )
                // InternalPureXbase.g:5158:9: ( ruleJvmFormalParameter )
                {
                // InternalPureXbase.g:5158:9: ( ruleJvmFormalParameter )
                // InternalPureXbase.g:5159:10: ruleJvmFormalParameter
                {
                pushFollow(FOLLOW_47);
                ruleJvmFormalParameter();

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

                }


                }

                // InternalPureXbase.g:5162:8: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                loop135:
                do {
                    int alt135=2;
                    int LA135_0 = input.LA(1);

                    if ( (LA135_0==57) ) {
                        alt135=1;
                    }


                    switch (alt135) {
                	case 1 :
                	    // InternalPureXbase.g:5163:9: ',' ( ( ruleJvmFormalParameter ) )
                	    {
                	    match(input,57,FOLLOW_11); if (state.failed) return ;
                	    // InternalPureXbase.g:5164:9: ( ( ruleJvmFormalParameter ) )
                	    // InternalPureXbase.g:5165:10: ( ruleJvmFormalParameter )
                	    {
                	    // InternalPureXbase.g:5165:10: ( ruleJvmFormalParameter )
                	    // InternalPureXbase.g:5166:11: ruleJvmFormalParameter
                	    {
                	    pushFollow(FOLLOW_47);
                	    ruleJvmFormalParameter();

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

                	    }


                	    }


                	    }
                	    break;

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


                }
                break;

        }

        // InternalPureXbase.g:5171:7: ( ( '|' ) )
        // InternalPureXbase.g:5172:8: ( '|' )
        {
        // InternalPureXbase.g:5172:8: ( '|' )
        // InternalPureXbase.g:5173:9: '|'
        {
        match(input,63,FOLLOW_2); if (state.failed) return ;

        }


        }


        }


        }
    }
680025
public final void synpred20_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:2127:6: ( ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign ) )
        // InternalXbaseWithAnnotations.g:2127:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
        {
        // InternalXbaseWithAnnotations.g:2127:7: ( () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign )
        // InternalXbaseWithAnnotations.g:2128:7: () ( '.' | ( ( '::' ) ) ) ( ( ruleFeatureCallID ) ) ruleOpSingleAssign
        {
        // InternalXbaseWithAnnotations.g:2128:7: ()
        // InternalXbaseWithAnnotations.g:2129:7: 
        {
        }

        // InternalXbaseWithAnnotations.g:2130:7: ( '.' | ( ( '::' ) ) )
        int alt123=2;
        int LA123_0 = input.LA(1);

        if ( (LA123_0==52) ) {
            alt123=1;
        }
        else if ( (LA123_0==53) ) {
            alt123=2;
        }
        else {
            if (state.backtracking>0) {state.failed=true; return ;}
            NoViableAltException nvae =
                new NoViableAltException("", 123, 0, input);

            throw nvae;
        }
        switch (alt123) {
            case 1 :
                // InternalXbaseWithAnnotations.g:2131:8: '.'
                {
                match(input,52,FOLLOW_32); if (state.failed) return ;

                }
                break;
            case 2 :
                // InternalXbaseWithAnnotations.g:2133:8: ( ( '::' ) )
                {
                // InternalXbaseWithAnnotations.g:2133:8: ( ( '::' ) )
                // InternalXbaseWithAnnotations.g:2134:9: ( '::' )
                {
                // InternalXbaseWithAnnotations.g:2134:9: ( '::' )
                // InternalXbaseWithAnnotations.g:2135:10: '::'
                {
                match(input,53,FOLLOW_32); if (state.failed) return ;

                }


                }


                }
                break;

        }

        // InternalXbaseWithAnnotations.g:2139:7: ( ( ruleFeatureCallID ) )
        // InternalXbaseWithAnnotations.g:2140:8: ( ruleFeatureCallID )
        {
        // InternalXbaseWithAnnotations.g:2140:8: ( ruleFeatureCallID )
        // InternalXbaseWithAnnotations.g:2141:9: ruleFeatureCallID
        {
        pushFollow(FOLLOW_8);
        ruleFeatureCallID();

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

        }


        }

        pushFollow(FOLLOW_2);
        ruleOpSingleAssign();

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

        }


        }
    }
939524
public final void synpred228_Java_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1183:18: ( '>' '>' '>' )
		// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1183:18: '>' '>' '>'
		{
		match(input,56,FOLLOW_56_in_synpred228_Java5379); if (state.failed) return;
		match(input,56,FOLLOW_56_in_synpred228_Java5381); if (state.failed) return;
		match(input,56,FOLLOW_56_in_synpred228_Java5383); if (state.failed) return;
		}

	}
194944
public final void synpred33_DRL6Expressions_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:591:15: ( DOT ID )
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:591:16: DOT ID
		{
		match(input,DOT,FOLLOW_DOT_in_synpred33_DRL6Expressions3234); if (state.failed) return;
		match(input,ID,FOLLOW_ID_in_synpred33_DRL6Expressions3236); if (state.failed) return;
		}

	}
284342
public final void synpred9_DRL5Expressions_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:393:7: ( DOUBLE_PIPE ( fullAnnotation[null] )? andRestriction )
		// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:393:8: DOUBLE_PIPE ( fullAnnotation[null] )? andRestriction
		{
		match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred9_DRL5Expressions1821); if (state.failed) return;
		// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:393:20: ( fullAnnotation[null] )?
		int alt91=2;
		int LA91_0 = input.LA(1);
		if ( (LA91_0==AT) ) {
			alt91=1;
		}
		switch (alt91) {
			case 1 :
				// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:393:20: fullAnnotation[null]
				{
				pushFollow(FOLLOW_fullAnnotation_in_synpred9_DRL5Expressions1823);
				fullAnnotation(null);
				state._fsp--;
				if (state.failed) return;
				}
				break;

		}

		pushFollow(FOLLOW_andRestriction_in_synpred9_DRL5Expressions1827);
		andRestriction();
		state._fsp--;
		if (state.failed) return;
		}

	}
31389
public final void synpred2_InternalXbaseWithAnnotations_fragment() throws RecognitionException {   
        // InternalXbaseWithAnnotations.g:121:7: ( ( ( ( ruleValidID ) ) '=' ) )
        // InternalXbaseWithAnnotations.g:121:8: ( ( ( ruleValidID ) ) '=' )
        {
        // InternalXbaseWithAnnotations.g:121:8: ( ( ( ruleValidID ) ) '=' )
        // InternalXbaseWithAnnotations.g:122:8: ( ( ruleValidID ) ) '='
        {
        // InternalXbaseWithAnnotations.g:122:8: ( ( ruleValidID ) )
        // InternalXbaseWithAnnotations.g:123:9: ( ruleValidID )
        {
        // InternalXbaseWithAnnotations.g:123:9: ( ruleValidID )
        // InternalXbaseWithAnnotations.g:124:10: ruleValidID
        {
        pushFollow(FOLLOW_8);
        ruleValidID();

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

        }


        }

        match(input,17,FOLLOW_2); if (state.failed) return ;

        }


        }
    }
49726
public final void synpred51_InternalSARL_fragment() throws RecognitionException {   
        // InternalSARL.g:14825:4: ( ( () ( ( ( ( ( 'var' ) ) | 'val' ) ( ( 'extension' ) )? ) | ( ( ( 'extension' ) ) ( ( ( 'var' ) ) | 'val' ) ) ) ) )
        // InternalSARL.g:14825:5: ( () ( ( ( ( ( 'var' ) ) | 'val' ) ( ( 'extension' ) )? ) | ( ( ( 'extension' ) ) ( ( ( 'var' ) ) | 'val' ) ) ) )
        {
        // InternalSARL.g:14825:5: ( () ( ( ( ( ( 'var' ) ) | 'val' ) ( ( 'extension' ) )? ) | ( ( ( 'extension' ) ) ( ( ( 'var' ) ) | 'val' ) ) ) )
        // InternalSARL.g:14826:5: () ( ( ( ( ( 'var' ) ) | 'val' ) ( ( 'extension' ) )? ) | ( ( ( 'extension' ) ) ( ( ( 'var' ) ) | 'val' ) ) )
        {
        // InternalSARL.g:14826:5: ()
        // InternalSARL.g:14827:5: 
        {
        }

        // InternalSARL.g:14828:5: ( ( ( ( ( 'var' ) ) | 'val' ) ( ( 'extension' ) )? ) | ( ( ( 'extension' ) ) ( ( ( 'var' ) ) | 'val' ) ) )
        int alt404=2;
        int LA404_0 = input.LA(1);

        if ( ((LA404_0>=65 && LA404_0<=66)) ) {
            alt404=1;
        }
        else if ( (LA404_0==45) ) {
            alt404=2;
        }
        else {
            if (state.backtracking>0) {state.failed=true; return ;}
            NoViableAltException nvae =
                new NoViableAltException("", 404, 0, input);

            throw nvae;
        }
        switch (alt404) {
            case 1 :
                // InternalSARL.g:14829:6: ( ( ( ( 'var' ) ) | 'val' ) ( ( 'extension' ) )? )
                {
                // InternalSARL.g:14829:6: ( ( ( ( 'var' ) ) | 'val' ) ( ( 'extension' ) )? )
                // InternalSARL.g:14830:7: ( ( ( 'var' ) ) | 'val' ) ( ( 'extension' ) )?
                {
                // InternalSARL.g:14830:7: ( ( ( 'var' ) ) | 'val' )
                int alt401=2;
                int LA401_0 = input.LA(1);

                if ( (LA401_0==65) ) {
                    alt401=1;
                }
                else if ( (LA401_0==66) ) {
                    alt401=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 401, 0, input);

                    throw nvae;
                }
                switch (alt401) {
                    case 1 :
                        // InternalSARL.g:14831:8: ( ( 'var' ) )
                        {
                        // InternalSARL.g:14831:8: ( ( 'var' ) )
                        // InternalSARL.g:14832:9: ( 'var' )
                        {
                        // InternalSARL.g:14832:9: ( 'var' )
                        // InternalSARL.g:14833:10: 'var'
                        {
                        match(input,65,FOLLOW_162); if (state.failed) return ;

                        }


                        }


                        }
                        break;
                    case 2 :
                        // InternalSARL.g:14837:8: 'val'
                        {
                        match(input,66,FOLLOW_162); if (state.failed) return ;

                        }
                        break;

                }

                // InternalSARL.g:14839:7: ( ( 'extension' ) )?
                int alt402=2;
                int LA402_0 = input.LA(1);

                if ( (LA402_0==45) ) {
                    alt402=1;
                }
                switch (alt402) {
                    case 1 :
                        // InternalSARL.g:14840:8: ( 'extension' )
                        {
                        // InternalSARL.g:14840:8: ( 'extension' )
                        // InternalSARL.g:14841:9: 'extension'
                        {
                        match(input,45,FOLLOW_2); if (state.failed) return ;

                        }


                        }
                        break;

                }


                }


                }
                break;
            case 2 :
                // InternalSARL.g:14846:6: ( ( ( 'extension' ) ) ( ( ( 'var' ) ) | 'val' ) )
                {
                // InternalSARL.g:14846:6: ( ( ( 'extension' ) ) ( ( ( 'var' ) ) | 'val' ) )
                // InternalSARL.g:14847:7: ( ( 'extension' ) ) ( ( ( 'var' ) ) | 'val' )
                {
                // InternalSARL.g:14847:7: ( ( 'extension' ) )
                // InternalSARL.g:14848:8: ( 'extension' )
                {
                // InternalSARL.g:14848:8: ( 'extension' )
                // InternalSARL.g:14849:9: 'extension'
                {
                match(input,45,FOLLOW_76); if (state.failed) return ;

                }


                }

                // InternalSARL.g:14852:7: ( ( ( 'var' ) ) | 'val' )
                int alt403=2;
                int LA403_0 = input.LA(1);

                if ( (LA403_0==65) ) {
                    alt403=1;
                }
                else if ( (LA403_0==66) ) {
                    alt403=2;
                }
                else {
                    if (state.backtracking>0) {state.failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("", 403, 0, input);

                    throw nvae;
                }
                switch (alt403) {
                    case 1 :
                        // InternalSARL.g:14853:8: ( ( 'var' ) )
                        {
                        // InternalSARL.g:14853:8: ( ( 'var' ) )
                        // InternalSARL.g:14854:9: ( 'var' )
                        {
                        // InternalSARL.g:14854:9: ( 'var' )
                        // InternalSARL.g:14855:10: 'var'
                        {
                        match(input,65,FOLLOW_2); if (state.failed) return ;

                        }


                        }


                        }
                        break;
                    case 2 :
                        // InternalSARL.g:14859:8: 'val'
                        {
                        match(input,66,FOLLOW_2); if (state.failed) return ;

                        }
                        break;

                }


                }


                }
                break;

        }


        }


        }
    }
915442
public final void synpred270_Java_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1235:8: ( '[' expression ']' )
		// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1235:8: '[' expression ']'
		{
		match(input,59,FOLLOW_59_in_synpred270_Java5893); if (state.failed) return;
		pushFollow(FOLLOW_expression_in_synpred270_Java5895);
		expression();
		state._fsp--;
		if (state.failed) return;
		match(input,60,FOLLOW_60_in_synpred270_Java5897); if (state.failed) return;
		}

	}
223496
public final void synpred42_InternalSARL_fragment() throws RecognitionException {   
        // InternalSARL.g:13363:6: ( ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) ) )
        // InternalSARL.g:13363:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
        {
        // InternalSARL.g:13363:7: ( () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) ) )
        // InternalSARL.g:13364:7: () ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
        {
        // InternalSARL.g:13364:7: ()
        // InternalSARL.g:13365:7: 
        {
        }

        // InternalSARL.g:13366:7: ( '.' | ( ( '?.' ) ) | ( ( '::' ) ) )
        int alt394=3;
        switch ( input.LA(1) ) {
        case 77:
            {
            alt394=1;
            }
            break;
        case 128:
            {
            alt394=2;
            }
            break;
        case 127:
            {
            alt394=3;
            }
            break;
        default:
            if (state.backtracking>0) {state.failed=true; return ;}
            NoViableAltException nvae =
                new NoViableAltException("", 394, 0, input);

            throw nvae;
        }

        switch (alt394) {
            case 1 :
                // InternalSARL.g:13367:8: '.'
                {
                match(input,77,FOLLOW_2); if (state.failed) return ;

                }
                break;
            case 2 :
                // InternalSARL.g:13369:8: ( ( '?.' ) )
                {
                // InternalSARL.g:13369:8: ( ( '?.' ) )
                // InternalSARL.g:13370:9: ( '?.' )
                {
                // InternalSARL.g:13370:9: ( '?.' )
                // InternalSARL.g:13371:10: '?.'
                {
                match(input,128,FOLLOW_2); if (state.failed) return ;

                }


                }


                }
                break;
            case 3 :
                // InternalSARL.g:13375:8: ( ( '::' ) )
                {
                // InternalSARL.g:13375:8: ( ( '::' ) )
                // InternalSARL.g:13376:9: ( '::' )
                {
                // InternalSARL.g:13376:9: ( '::' )
                // InternalSARL.g:13377:10: '::'
                {
                match(input,127,FOLLOW_2); if (state.failed) return ;

                }


                }


                }
                break;

        }


        }


        }
    }
186970
public final void synpred48_InternalSARL_fragment() throws RecognitionException {   
        // InternalSARL.g:13977:4: ( ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) ) )
        // InternalSARL.g:13977:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        {
        // InternalSARL.g:13977:5: ( ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) ) )
        // InternalSARL.g:13978:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )? ( ( '|' ) )
        {
        // InternalSARL.g:13978:5: ( ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )* )?
        int alt398=2;
        int LA398_0 = input.LA(1);

        if ( (LA398_0==RULE_ID||(LA398_0>=44 && LA398_0<=45)||(LA398_0>=92 && LA398_0<=95)) ) {
            alt398=1;
        }
        switch (alt398) {
            case 1 :
                // InternalSARL.g:13979:6: ( ( ruleJvmFormalParameter ) ) ( ',' ( ( ruleJvmFormalParameter ) ) )*
                {
                // InternalSARL.g:13979:6: ( ( ruleJvmFormalParameter ) )
                // InternalSARL.g:13980:7: ( ruleJvmFormalParameter )
                {
                // InternalSARL.g:13980:7: ( ruleJvmFormalParameter )
                // InternalSARL.g:13981:8: ruleJvmFormalParameter
                {
                pushFollow(FOLLOW_134);
                ruleJvmFormalParameter();

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

                }


                }

                // InternalSARL.g:13984:6: ( ',' ( ( ruleJvmFormalParameter ) ) )*
                loop397:
                do {
                    int alt397=2;
                    int LA397_0 = input.LA(1);

                    if ( (LA397_0==32) ) {
                        alt397=1;
                    }


                    switch (alt397) {
                	case 1 :
                	    // InternalSARL.g:13985:7: ',' ( ( ruleJvmFormalParameter ) )
                	    {
                	    match(input,32,FOLLOW_75); if (state.failed) return ;
                	    // InternalSARL.g:13986:7: ( ( ruleJvmFormalParameter ) )
                	    // InternalSARL.g:13987:8: ( ruleJvmFormalParameter )
                	    {
                	    // InternalSARL.g:13987:8: ( ruleJvmFormalParameter )
                	    // InternalSARL.g:13988:9: ruleJvmFormalParameter
                	    {
                	    pushFollow(FOLLOW_134);
                	    ruleJvmFormalParameter();

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

                	    }


                	    }


                	    }
                	    break;

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


                }
                break;

        }

        // InternalSARL.g:13993:5: ( ( '|' ) )
        // InternalSARL.g:13994:6: ( '|' )
        {
        // InternalSARL.g:13994:6: ( '|' )
        // InternalSARL.g:13995:7: '|'
        {
        match(input,97,FOLLOW_2); if (state.failed) return ;

        }


        }


        }


        }
    }