src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:101:1: value_section : ^( VT_ENTRY_VAL ( value_sentence )+ ) ;
325710
public final void value_section() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:105:5: ( ^( VT_ENTRY_VAL ( value_sentence )+ ) )
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:105:7: ^( VT_ENTRY_VAL ( value_sentence )+ )
			{
			match(input,VT_ENTRY_VAL,FOLLOW_VT_ENTRY_VAL_in_value_section329); 
			match(input, Token.DOWN, null); 
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:105:22: ( value_sentence )+
			int cnt11=0;
			loop11:
			while (true) {
				int alt11=2;
				int LA11_0 = input.LA(1);
				if ( (LA11_0==VT_LITERAL||LA11_0==VT_SPACE||LA11_0==VT_VAR_REF) ) {
					alt11=1;
				}

				switch (alt11) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:105:22: value_sentence
					{
					pushFollow(FOLLOW_value_sentence_in_value_section331);
					value_sentence();
					state._fsp--;

					}
					break;

				default :
					if ( cnt11 >= 1 ) break loop11;
					EarlyExitException eee = new EarlyExitException(11, input);
					throw eee;
				}
				cnt11++;
			}

			match(input, Token.UP, null); 

			}


			    entry_stack.peek().valuebuffer.append(" ");

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}
1144379
public final void mHexDigit() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:122:10: ( ( '0' .. '9' | 'a' .. 'f' | 'A' .. 'F' ) )
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:
			{
			if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) {
				input.consume();
				state.failed=false;
			}
			else {
				if (state.backtracking>0) {state.failed=true; return;}
				MismatchedSetException mse = new MismatchedSetException(null,input);
				recover(mse);
				throw mse;
			}
			}

		}
		finally {
			// do for sure before leaving
		}
	}
905053
public final void annotationElementValuePair(AnnotationDescr descr, AnnotatedDescrBuilder inDescrBuilder) throws RecognitionException {
		Token key=null;
		Object val =null;

		try {
			// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:210:3: (key= ID EQUALS_ASSIGN val= annotationValue[inDescrBuilder] )
			// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:210:5: key= ID EQUALS_ASSIGN val= annotationValue[inDescrBuilder]
			{
			key=(Token)match(input,ID,FOLLOW_ID_in_annotationElementValuePair1041); if (state.failed) return;
			match(input,EQUALS_ASSIGN,FOLLOW_EQUALS_ASSIGN_in_annotationElementValuePair1043); if (state.failed) return;
			pushFollow(FOLLOW_annotationValue_in_annotationElementValuePair1047);
			val=annotationValue(inDescrBuilder);
			state._fsp--;
			if (state.failed) return;
			if ( state.backtracking==0 ) { if ( buildDescr ) { descr.setKeyValue( (key!=null?key.getText():null), val ); } }
			}

		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
1121527
public final void synpred10_DRL6Expressions_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:407:7: ( DOUBLE_PIPE ( fullAnnotation[null] )? andRestriction )
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:407:8: DOUBLE_PIPE ( fullAnnotation[null] )? andRestriction
		{
		match(input,DOUBLE_PIPE,FOLLOW_DOUBLE_PIPE_in_synpred10_DRL6Expressions1903); if (state.failed) return;
		// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:407:20: ( fullAnnotation[null] )?
		int alt99=2;
		int LA99_0 = input.LA(1);
		if ( (LA99_0==AT) ) {
			alt99=1;
		}
		switch (alt99) {
			case 1 :
				// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:407:20: fullAnnotation[null]
				{
				pushFollow(FOLLOW_fullAnnotation_in_synpred10_DRL6Expressions1905);
				fullAnnotation(null);
				state._fsp--;
				if (state.failed) return;
				}
				break;

		}

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

	}
1175863
public final void mJavaLetterOrDigit() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1388:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '$' | '_' ) |{...}?~ ( '\\u0000' .. '\\u007F' | '\\uD800' .. '\\uDBFF' ) |{...}? ( '\\uD800' .. '\\uDBFF' ) ( '\\uDC00' .. '\\uDFFF' ) )
			int alt28=3;
			int LA28_0 = input.LA(1);
			if ( (LA28_0=='$'||(LA28_0 >= '0' && LA28_0 <= '9')||(LA28_0 >= 'A' && LA28_0 <= 'Z')||LA28_0=='_'||(LA28_0 >= 'a' && LA28_0 <= 'z')) ) {
				alt28=1;
			}
			else if ( ((LA28_0 >= '\u0080' && LA28_0 <= '\uD7FF')||(LA28_0 >= '\uDC00' && LA28_0 <= '\uFFFF')) ) {
				alt28=2;
			}
			else if ( ((LA28_0 >= '\uD800' && LA28_0 <= '\uDBFF')) ) {
				alt28=3;
			}

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

			switch (alt28) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1388:4: ( 'a' .. 'z' | 'A' .. 'Z' | '0' .. '9' | '$' | '_' )
					{
					if ( input.LA(1)=='$'||(input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'Z')||input.LA(1)=='_'||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1389:9: {...}?~ ( '\\u0000' .. '\\u007F' | '\\uD800' .. '\\uDBFF' )
					{
					if ( !((Character.isJavaIdentifierPart(input.LA(1)))) ) {
						throw new FailedPredicateException(input, "JavaLetterOrDigit", "Character.isJavaIdentifierPart(input.LA(1))");
					}
					if ( (input.LA(1) >= '\u0080' && input.LA(1) <= '\uD7FF')||(input.LA(1) >= '\uDC00' && input.LA(1) <= '\uFFFF') ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1391:9: {...}? ( '\\uD800' .. '\\uDBFF' ) ( '\\uDC00' .. '\\uDFFF' )
					{
					if ( !((Character.isJavaIdentifierPart(Character.toCodePoint((char)input.LA(-1), (char)input.LA(1))))) ) {
						throw new FailedPredicateException(input, "JavaLetterOrDigit", "Character.isJavaIdentifierPart(Character.toCodePoint((char)input.LA(-1), (char)input.LA(1)))");
					}
					if ( (input.LA(1) >= '\uD800' && input.LA(1) <= '\uDBFF') ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					if ( (input.LA(1) >= '\uDC00' && input.LA(1) <= '\uDFFF') ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;

			}
		}
		finally {
			// do for sure before leaving
		}
	}
367676
public final void mEOL() throws RecognitionException {
		try {
			int _type = EOL;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:281:6: ( ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' ) )
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:282:12: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
			{
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:282:12: ( ( '\\r\\n' )=> '\\r\\n' | '\\r' | '\\n' )
			int alt2=3;
			int LA2_0 = input.LA(1);
			if ( (LA2_0=='\r') ) {
				int LA2_1 = input.LA(2);
				if ( (LA2_1=='\n') && (synpred1_DSLMap())) {
					alt2=1;
				}

			}
			else if ( (LA2_0=='\n') ) {
				alt2=3;
			}

			else {
				if (state.backtracking>0) {state.failed=true; return;}
				NoViableAltException nvae =
					new NoViableAltException("", 2, 0, input);
				throw nvae;
			}

			switch (alt2) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:282:20: ( '\\r\\n' )=> '\\r\\n'
					{
					match("\r\n"); if (state.failed) return;

					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:283:25: '\\r'
					{
					match('\r'); if (state.failed) return;
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:284:25: '\\n'
					{
					match('\n'); if (state.failed) return;
					}
					break;

			}

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
578536
public final void consequence_key() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:163:5: ( VT_CONSEQUENCE )
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:163:7: VT_CONSEQUENCE
			{
			match(input,VT_CONSEQUENCE,FOLLOW_VT_CONSEQUENCE_in_consequence_key524); 
			entry_stack.peek().retval.setSection(DSLMappingEntry.CONSEQUENCE);
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}
205358
public final void classBodyDeclaration() throws RecognitionException {
		int classBodyDeclaration_StartIndex = input.index();

		try {
			if ( state.backtracking>0 && alreadyParsedRule(input, 21) ) { return; }

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:359:5: ( ';' | ( 'static' )? block | ( modifier )* memberDecl )
			int alt35=3;
			switch ( input.LA(1) ) {
			case 52:
				{
				alt35=1;
				}
				break;
			case 106:
				{
				int LA35_2 = input.LA(2);
				if ( (LA35_2==121) ) {
					alt35=2;
				}
				else if ( (LA35_2==ENUM||LA35_2==Identifier||LA35_2==53||LA35_2==58||LA35_2==63||LA35_2==65||LA35_2==67||(LA35_2 >= 71 && LA35_2 <= 72)||LA35_2==77||LA35_2==83||LA35_2==85||(LA35_2 >= 92 && LA35_2 <= 94)||LA35_2==96||(LA35_2 >= 100 && LA35_2 <= 102)||(LA35_2 >= 105 && LA35_2 <= 107)||LA35_2==110||LA35_2==114||(LA35_2 >= 118 && LA35_2 <= 119)) ) {
					alt35=3;
				}

				else {
					if (state.backtracking>0) {state.failed=true; return;}
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 35, 2, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

				}
				break;
			case 121:
				{
				alt35=2;
				}
				break;
			case ENUM:
			case Identifier:
			case 53:
			case 58:
			case 63:
			case 65:
			case 67:
			case 71:
			case 72:
			case 77:
			case 83:
			case 85:
			case 92:
			case 93:
			case 94:
			case 96:
			case 100:
			case 101:
			case 102:
			case 105:
			case 107:
			case 110:
			case 114:
			case 118:
			case 119:
				{
				alt35=3;
				}
				break;
			default:
				if (state.backtracking>0) {state.failed=true; return;}
				NoViableAltException nvae =
					new NoViableAltException("", 35, 0, input);
				throw nvae;
			}
			switch (alt35) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:359:7: ';'
					{
					match(input,52,FOLLOW_52_in_classBodyDeclaration671); if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:360:7: ( 'static' )? block
					{
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:360:7: ( 'static' )?
					int alt33=2;
					int LA33_0 = input.LA(1);
					if ( (LA33_0==106) ) {
						alt33=1;
					}
					switch (alt33) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:360:7: 'static'
							{
							match(input,106,FOLLOW_106_in_classBodyDeclaration679); if (state.failed) return;
							}
							break;

					}

					pushFollow(FOLLOW_block_in_classBodyDeclaration682);
					block();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:361:7: ( modifier )* memberDecl
					{
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:361:7: ( modifier )*
					loop34:
					while (true) {
						int alt34=2;
						int LA34_0 = input.LA(1);
						if ( (LA34_0==58) ) {
							int LA34_6 = input.LA(2);
							if ( (LA34_6==Identifier) ) {
								alt34=1;
							}

						}
						else if ( (LA34_0==63||LA34_0==83||LA34_0==96||(LA34_0 >= 100 && LA34_0 <= 102)||(LA34_0 >= 106 && LA34_0 <= 107)||LA34_0==110||LA34_0==114||LA34_0==119) ) {
							alt34=1;
						}

						switch (alt34) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:361:7: modifier
							{
							pushFollow(FOLLOW_modifier_in_classBodyDeclaration690);
							modifier();
							state._fsp--;
							if (state.failed) return;
							}
							break;

						default :
							break loop34;
						}
					}

					pushFollow(FOLLOW_memberDecl_in_classBodyDeclaration693);
					memberDecl();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}
		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
			if ( state.backtracking>0 ) { memoize(input, 21, classBodyDeclaration_StartIndex); }

		}
	}
1072574
public final void mapExpressionList() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:570:5: ( mapEntry ( COMMA mapEntry )* )
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:570:7: mapEntry ( COMMA mapEntry )*
			{
			pushFollow(FOLLOW_mapEntry_in_mapExpressionList3151);
			mapEntry();
			state._fsp--;
			if (state.failed) return;
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:570:16: ( COMMA mapEntry )*
			loop62:
			while (true) {
				int alt62=2;
				int LA62_0 = input.LA(1);
				if ( (LA62_0==COMMA) ) {
					alt62=1;
				}

				switch (alt62) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:570:17: COMMA mapEntry
					{
					match(input,COMMA,FOLLOW_COMMA_in_mapExpressionList3154); if (state.failed) return;
					pushFollow(FOLLOW_mapEntry_in_mapExpressionList3156);
					mapEntry();
					state._fsp--;
					if (state.failed) return;
					}
					break;

				default :
					break loop62;
				}
			}

			}

		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
127629
public final void mHexLiteral() throws RecognitionException {
		try {
			int _type = HexLiteral;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1302:12: ( '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )? )
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1302:14: '0' ( 'x' | 'X' ) ( HexDigit )+ ( IntegerTypeSuffix )?
			{
			match('0'); 
			if ( input.LA(1)=='X'||input.LA(1)=='x' ) {
				input.consume();
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				recover(mse);
				throw mse;
			}
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1302:28: ( HexDigit )+
			int cnt1=0;
			loop1:
			while (true) {
				int alt1=2;
				int LA1_0 = input.LA(1);
				if ( ((LA1_0 >= '0' && LA1_0 <= '9')||(LA1_0 >= 'A' && LA1_0 <= 'F')||(LA1_0 >= 'a' && LA1_0 <= 'f')) ) {
					alt1=1;
				}

				switch (alt1) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:
					{
					if ( (input.LA(1) >= '0' && input.LA(1) <= '9')||(input.LA(1) >= 'A' && input.LA(1) <= 'F')||(input.LA(1) >= 'a' && input.LA(1) <= 'f') ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;

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

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1302:38: ( IntegerTypeSuffix )?
			int alt2=2;
			int LA2_0 = input.LA(1);
			if ( (LA2_0=='L'||LA2_0=='l') ) {
				alt2=1;
			}
			switch (alt2) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:
					{
					if ( input.LA(1)=='L'||input.LA(1)=='l' ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;

			}

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
585790
@Override
	public void mTokens() throws RecognitionException {
		// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:8: ( WS | FLOAT | HEX | DECIMAL | STRING | TIME_INTERVAL | BOOL | NULL | AT | PLUS_ASSIGN | MINUS_ASSIGN | MULT_ASSIGN | DIV_ASSIGN | AND_ASSIGN | OR_ASSIGN | XOR_ASSIGN | MOD_ASSIGN | UNIFY | DECR | INCR | ARROW | SEMICOLON | COLON | EQUALS | NOT_EQUALS | GREATER_EQUALS | LESS_EQUALS | GREATER | LESS | EQUALS_ASSIGN | LEFT_PAREN | RIGHT_PAREN | LEFT_SQUARE | RIGHT_SQUARE | LEFT_CURLY | RIGHT_CURLY | COMMA | DOT | NULL_SAFE_DOT | DOUBLE_AMPER | DOUBLE_PIPE | QUESTION | NEGATION | TILDE | PIPE | AMPER | XOR | MOD | STAR | MINUS | PLUS | HASH | C_STYLE_SINGLE_LINE_COMMENT | MULTI_LINE_COMMENT | ID | DIV | MISC )
		int alt63=57;
		alt63 = dfa63.predict(input);
		switch (alt63) {
			case 1 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:10: WS
				{
				mWS(); if (state.failed) return;

				}
				break;
			case 2 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:13: FLOAT
				{
				mFLOAT(); if (state.failed) return;

				}
				break;
			case 3 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:19: HEX
				{
				mHEX(); if (state.failed) return;

				}
				break;
			case 4 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:23: DECIMAL
				{
				mDECIMAL(); if (state.failed) return;

				}
				break;
			case 5 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:31: STRING
				{
				mSTRING(); if (state.failed) return;

				}
				break;
			case 6 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:38: TIME_INTERVAL
				{
				mTIME_INTERVAL(); if (state.failed) return;

				}
				break;
			case 7 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:52: BOOL
				{
				mBOOL(); if (state.failed) return;

				}
				break;
			case 8 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:57: NULL
				{
				mNULL(); if (state.failed) return;

				}
				break;
			case 9 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:62: AT
				{
				mAT(); if (state.failed) return;

				}
				break;
			case 10 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:65: PLUS_ASSIGN
				{
				mPLUS_ASSIGN(); if (state.failed) return;

				}
				break;
			case 11 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:77: MINUS_ASSIGN
				{
				mMINUS_ASSIGN(); if (state.failed) return;

				}
				break;
			case 12 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:90: MULT_ASSIGN
				{
				mMULT_ASSIGN(); if (state.failed) return;

				}
				break;
			case 13 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:102: DIV_ASSIGN
				{
				mDIV_ASSIGN(); if (state.failed) return;

				}
				break;
			case 14 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:113: AND_ASSIGN
				{
				mAND_ASSIGN(); if (state.failed) return;

				}
				break;
			case 15 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:124: OR_ASSIGN
				{
				mOR_ASSIGN(); if (state.failed) return;

				}
				break;
			case 16 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:134: XOR_ASSIGN
				{
				mXOR_ASSIGN(); if (state.failed) return;

				}
				break;
			case 17 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:145: MOD_ASSIGN
				{
				mMOD_ASSIGN(); if (state.failed) return;

				}
				break;
			case 18 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:156: UNIFY
				{
				mUNIFY(); if (state.failed) return;

				}
				break;
			case 19 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:162: DECR
				{
				mDECR(); if (state.failed) return;

				}
				break;
			case 20 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:167: INCR
				{
				mINCR(); if (state.failed) return;

				}
				break;
			case 21 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:172: ARROW
				{
				mARROW(); if (state.failed) return;

				}
				break;
			case 22 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:178: SEMICOLON
				{
				mSEMICOLON(); if (state.failed) return;

				}
				break;
			case 23 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:188: COLON
				{
				mCOLON(); if (state.failed) return;

				}
				break;
			case 24 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:194: EQUALS
				{
				mEQUALS(); if (state.failed) return;

				}
				break;
			case 25 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:201: NOT_EQUALS
				{
				mNOT_EQUALS(); if (state.failed) return;

				}
				break;
			case 26 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:212: GREATER_EQUALS
				{
				mGREATER_EQUALS(); if (state.failed) return;

				}
				break;
			case 27 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:227: LESS_EQUALS
				{
				mLESS_EQUALS(); if (state.failed) return;

				}
				break;
			case 28 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:239: GREATER
				{
				mGREATER(); if (state.failed) return;

				}
				break;
			case 29 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:247: LESS
				{
				mLESS(); if (state.failed) return;

				}
				break;
			case 30 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:252: EQUALS_ASSIGN
				{
				mEQUALS_ASSIGN(); if (state.failed) return;

				}
				break;
			case 31 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:266: LEFT_PAREN
				{
				mLEFT_PAREN(); if (state.failed) return;

				}
				break;
			case 32 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:277: RIGHT_PAREN
				{
				mRIGHT_PAREN(); if (state.failed) return;

				}
				break;
			case 33 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:289: LEFT_SQUARE
				{
				mLEFT_SQUARE(); if (state.failed) return;

				}
				break;
			case 34 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:301: RIGHT_SQUARE
				{
				mRIGHT_SQUARE(); if (state.failed) return;

				}
				break;
			case 35 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:314: LEFT_CURLY
				{
				mLEFT_CURLY(); if (state.failed) return;

				}
				break;
			case 36 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:325: RIGHT_CURLY
				{
				mRIGHT_CURLY(); if (state.failed) return;

				}
				break;
			case 37 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:337: COMMA
				{
				mCOMMA(); if (state.failed) return;

				}
				break;
			case 38 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:343: DOT
				{
				mDOT(); if (state.failed) return;

				}
				break;
			case 39 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:347: NULL_SAFE_DOT
				{
				mNULL_SAFE_DOT(); if (state.failed) return;

				}
				break;
			case 40 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:361: DOUBLE_AMPER
				{
				mDOUBLE_AMPER(); if (state.failed) return;

				}
				break;
			case 41 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:374: DOUBLE_PIPE
				{
				mDOUBLE_PIPE(); if (state.failed) return;

				}
				break;
			case 42 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:386: QUESTION
				{
				mQUESTION(); if (state.failed) return;

				}
				break;
			case 43 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:395: NEGATION
				{
				mNEGATION(); if (state.failed) return;

				}
				break;
			case 44 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:404: TILDE
				{
				mTILDE(); if (state.failed) return;

				}
				break;
			case 45 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:410: PIPE
				{
				mPIPE(); if (state.failed) return;

				}
				break;
			case 46 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:415: AMPER
				{
				mAMPER(); if (state.failed) return;

				}
				break;
			case 47 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:421: XOR
				{
				mXOR(); if (state.failed) return;

				}
				break;
			case 48 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:425: MOD
				{
				mMOD(); if (state.failed) return;

				}
				break;
			case 49 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:429: STAR
				{
				mSTAR(); if (state.failed) return;

				}
				break;
			case 50 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:434: MINUS
				{
				mMINUS(); if (state.failed) return;

				}
				break;
			case 51 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:440: PLUS
				{
				mPLUS(); if (state.failed) return;

				}
				break;
			case 52 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:445: HASH
				{
				mHASH(); if (state.failed) return;

				}
				break;
			case 53 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:450: C_STYLE_SINGLE_LINE_COMMENT
				{
				mC_STYLE_SINGLE_LINE_COMMENT(); if (state.failed) return;

				}
				break;
			case 54 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:478: MULTI_LINE_COMMENT
				{
				mMULTI_LINE_COMMENT(); if (state.failed) return;

				}
				break;
			case 55 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:497: ID
				{
				mID(); if (state.failed) return;

				}
				break;
			case 56 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:500: DIV
				{
				mDIV(); if (state.failed) return;

				}
				break;
			case 57 :
				// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:1:504: MISC
				{
				mMISC(); if (state.failed) return;

				}
				break;

		}
	}
313931
public final void mBOOL() throws RecognitionException {
		try {
			int _type = BOOL;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:146:6: ( ( 'true' | 'false' ) )
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:146:8: ( 'true' | 'false' )
			{
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:146:8: ( 'true' | 'false' )
			int alt56=2;
			int LA56_0 = input.LA(1);
			if ( (LA56_0=='t') ) {
				alt56=1;
			}
			else if ( (LA56_0=='f') ) {
				alt56=2;
			}

			else {
				if (state.backtracking>0) {state.failed=true; return;}
				NoViableAltException nvae =
					new NoViableAltException("", 56, 0, input);
				throw nvae;
			}

			switch (alt56) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:146:9: 'true'
					{
					match("true"); if (state.failed) return;

					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:146:16: 'false'
					{
					match("false"); if (state.failed) return;

					}
					break;

			}

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
1024184
public final void mPLUS_ASSIGN() throws RecognitionException {
		try {
			int _type = PLUS_ASSIGN;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:156:5: ( '+=' )
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:156:7: '+='
			{
			match("+="); if (state.failed) return;

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
705076
public final void annotationElementValuePairs(AnnotationDescr descr) throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:197:3: ( annotationElementValuePair[descr] ( COMMA annotationElementValuePair[descr] )* )
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:197:5: annotationElementValuePair[descr] ( COMMA annotationElementValuePair[descr] )*
			{
			pushFollow(FOLLOW_annotationElementValuePair_in_annotationElementValuePairs1004);
			annotationElementValuePair(descr);
			state._fsp--;
			if (state.failed) return;
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:197:39: ( COMMA annotationElementValuePair[descr] )*
			loop20:
			while (true) {
				int alt20=2;
				int LA20_0 = input.LA(1);
				if ( (LA20_0==COMMA) ) {
					alt20=1;
				}

				switch (alt20) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:197:41: COMMA annotationElementValuePair[descr]
					{
					match(input,COMMA,FOLLOW_COMMA_in_annotationElementValuePairs1009); if (state.failed) return;
					pushFollow(FOLLOW_annotationElementValuePair_in_annotationElementValuePairs1011);
					annotationElementValuePair(descr);
					state._fsp--;
					if (state.failed) return;
					}
					break;

				default :
					break loop20;
				}
			}

			}

		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
982561
public final void mCOLON() throws RecognitionException {
		try {
			int _type = COLON;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:318:7: ( ':' )
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:318:9: ':'
			{
			match(':'); if (state.failed) return;
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
720665
public final void typeArgument() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:147:5: ( type | QUESTION ( ( extends_key | super_key ) type )? )
			int alt15=2;
			int LA15_0 = input.LA(1);
			if ( (LA15_0==ID) ) {
				alt15=1;
			}
			else if ( (LA15_0==QUESTION) ) {
				alt15=2;
			}

			else {
				if (state.backtracking>0) {state.failed=true; return;}
				NoViableAltException nvae =
					new NoViableAltException("", 15, 0, input);
				throw nvae;
			}

			switch (alt15) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:147:7: type
					{
					pushFollow(FOLLOW_type_in_typeArgument668);
					type();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:148:7: QUESTION ( ( extends_key | super_key ) type )?
					{
					match(input,QUESTION,FOLLOW_QUESTION_in_typeArgument676); if (state.failed) return;
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:148:16: ( ( extends_key | super_key ) type )?
					int alt14=2;
					int LA14_0 = input.LA(1);
					if ( (LA14_0==ID) && ((((helper.validateIdentifierKey(DroolsSoftKeywords.SUPER)))||((helper.validateIdentifierKey(DroolsSoftKeywords.EXTENDS)))))) {
						alt14=1;
					}
					switch (alt14) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:148:17: ( extends_key | super_key ) type
							{
							// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:148:17: ( extends_key | super_key )
							int alt13=2;
							int LA13_0 = input.LA(1);
							if ( (LA13_0==ID) && ((((helper.validateIdentifierKey(DroolsSoftKeywords.SUPER)))||((helper.validateIdentifierKey(DroolsSoftKeywords.EXTENDS)))))) {
								int LA13_1 = input.LA(2);
								if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.EXTENDS)))) ) {
									alt13=1;
								}
								else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.SUPER)))) ) {
									alt13=2;
								}

								else {
									if (state.backtracking>0) {state.failed=true; return;}
									int nvaeMark = input.mark();
									try {
										input.consume();
										NoViableAltException nvae =
											new NoViableAltException("", 13, 1, input);
										throw nvae;
									} finally {
										input.rewind(nvaeMark);
									}
								}

							}

							switch (alt13) {
								case 1 :
									// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:148:18: extends_key
									{
									pushFollow(FOLLOW_extends_key_in_typeArgument680);
									extends_key();
									state._fsp--;
									if (state.failed) return;
									}
									break;
								case 2 :
									// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:148:32: super_key
									{
									pushFollow(FOLLOW_super_key_in_typeArgument684);
									super_key();
									state._fsp--;
									if (state.failed) return;
									}
									break;

							}

							pushFollow(FOLLOW_type_in_typeArgument687);
							type();
							state._fsp--;
							if (state.failed) return;
							}
							break;

					}

					}
					break;

			}
		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
1032469
public final void annotationArray() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:209:3: ( LEFT_CURLY ( annotationValue ( COMMA annotationValue )* )? RIGHT_CURLY )
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:209:6: LEFT_CURLY ( annotationValue ( COMMA annotationValue )* )? RIGHT_CURLY
			{
			match(input,LEFT_CURLY,FOLLOW_LEFT_CURLY_in_annotationArray1071); if (state.failed) return;
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:209:17: ( annotationValue ( COMMA annotationValue )* )?
			int alt23=2;
			int LA23_0 = input.LA(1);
			if ( (LA23_0==BOOL||(LA23_0 >= DECIMAL && LA23_0 <= DECR)||LA23_0==FLOAT||LA23_0==HEX||(LA23_0 >= ID && LA23_0 <= INCR)||(LA23_0 >= LEFT_CURLY && LA23_0 <= LESS)||LA23_0==MINUS||LA23_0==NEGATION||LA23_0==NULL||LA23_0==PLUS||(LA23_0 >= STAR && LA23_0 <= TIME_INTERVAL)) ) {
				alt23=1;
			}
			switch (alt23) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:209:19: annotationValue ( COMMA annotationValue )*
					{
					pushFollow(FOLLOW_annotationValue_in_annotationArray1075);
					annotationValue();
					state._fsp--;
					if (state.failed) return;
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:209:35: ( COMMA annotationValue )*
					loop22:
					while (true) {
						int alt22=2;
						int LA22_0 = input.LA(1);
						if ( (LA22_0==COMMA) ) {
							alt22=1;
						}

						switch (alt22) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:209:37: COMMA annotationValue
							{
							match(input,COMMA,FOLLOW_COMMA_in_annotationArray1079); if (state.failed) return;
							pushFollow(FOLLOW_annotationValue_in_annotationArray1081);
							annotationValue();
							state._fsp--;
							if (state.failed) return;
							}
							break;

						default :
							break loop22;
						}
					}

					}
					break;

			}

			match(input,RIGHT_CURLY,FOLLOW_RIGHT_CURLY_in_annotationArray1089); if (state.failed) return;
			}

		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}