$ANTLR start "OBJECT_IDENT"
334956
public final void mOBJECT_IDENT() throws RecognitionException {
        try {
            int _type = OBJECT_IDENT;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // BELScript.g:277:13: ( ( '_' | LETTER | DIGIT )+ )
            // BELScript.g:278:5: ( '_' | LETTER | DIGIT )+
            {
            // BELScript.g:278:5: ( '_' | LETTER | DIGIT )+
            int cnt7=0;
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( ((LA7_0>='0' && LA7_0<='9')||(LA7_0>='A' && LA7_0<='Z')||LA7_0=='_'||(LA7_0>='a' && LA7_0<='z')) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // BELScript.g:
            	    {
            	    if ( (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;

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


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
1139489
public final JavaParser.type_return type() throws RecognitionException {
		JavaParser.type_return retval = new JavaParser.type_return();
		retval.start = input.LT(1);
		int type_StartIndex = input.index();

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

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:5: ( Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* ( '[' ']' )* | primitiveType ( '[' ']' )* )
			int alt72=2;
			int LA72_0 = input.LA(1);
			if ( (LA72_0==Identifier) ) {
				alt72=1;
			}
			else if ( (LA72_0==65||LA72_0==67||LA72_0==71||LA72_0==77||LA72_0==85||LA72_0==92||LA72_0==94||LA72_0==105) ) {
				alt72=2;
			}

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

			switch (alt72) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:7: Identifier ( typeArguments )? ( '.' Identifier ( typeArguments )? )* ( '[' ']' )*
					{
					match(input,Identifier,FOLLOW_Identifier_in_type1776); if (state.failed) return retval;
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:18: ( typeArguments )?
					int alt67=2;
					int LA67_0 = input.LA(1);
					if ( (LA67_0==53) ) {
						int LA67_1 = input.LA(2);
						if ( (LA67_1==Identifier||LA67_1==57||LA67_1==65||LA67_1==67||LA67_1==71||LA67_1==77||LA67_1==85||LA67_1==92||LA67_1==94||LA67_1==105) ) {
							alt67=1;
						}
					}
					switch (alt67) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:19: typeArguments
							{
							pushFollow(FOLLOW_typeArguments_in_type1779);
							typeArguments();
							state._fsp--;
							if (state.failed) return retval;
							}
							break;

					}

					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:35: ( '.' Identifier ( typeArguments )? )*
					loop69:
					while (true) {
						int alt69=2;
						int LA69_0 = input.LA(1);
						if ( (LA69_0==47) ) {
							alt69=1;
						}

						switch (alt69) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:36: '.' Identifier ( typeArguments )?
							{
							match(input,47,FOLLOW_47_in_type1784); if (state.failed) return retval;
							match(input,Identifier,FOLLOW_Identifier_in_type1786); if (state.failed) return retval;
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:51: ( typeArguments )?
							int alt68=2;
							int LA68_0 = input.LA(1);
							if ( (LA68_0==53) ) {
								int LA68_1 = input.LA(2);
								if ( (LA68_1==Identifier||LA68_1==57||LA68_1==65||LA68_1==67||LA68_1==71||LA68_1==77||LA68_1==85||LA68_1==92||LA68_1==94||LA68_1==105) ) {
									alt68=1;
								}
							}
							switch (alt68) {
								case 1 :
									// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:52: typeArguments
									{
									pushFollow(FOLLOW_typeArguments_in_type1789);
									typeArguments();
									state._fsp--;
									if (state.failed) return retval;
									}
									break;

							}

							}
							break;

						default :
							break loop69;
						}
					}

					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:71: ( '[' ']' )*
					loop70:
					while (true) {
						int alt70=2;
						int LA70_0 = input.LA(1);
						if ( (LA70_0==59) ) {
							alt70=1;
						}

						switch (alt70) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:532:72: '[' ']'
							{
							match(input,59,FOLLOW_59_in_type1797); if (state.failed) return retval;
							match(input,60,FOLLOW_60_in_type1799); if (state.failed) return retval;
							}
							break;

						default :
							break loop70;
						}
					}

					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:533:7: primitiveType ( '[' ']' )*
					{
					pushFollow(FOLLOW_primitiveType_in_type1809);
					primitiveType();
					state._fsp--;
					if (state.failed) return retval;
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:533:21: ( '[' ']' )*
					loop71:
					while (true) {
						int alt71=2;
						int LA71_0 = input.LA(1);
						if ( (LA71_0==59) ) {
							alt71=1;
						}

						switch (alt71) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:533:22: '[' ']'
							{
							match(input,59,FOLLOW_59_in_type1812); if (state.failed) return retval;
							match(input,60,FOLLOW_60_in_type1814); if (state.failed) return retval;
							}
							break;

						default :
							break loop71;
						}
					}

					}
					break;

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

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

		}
		return retval;
	}
1087489
function processIdentifiers(tokenizer, scope) {
  let params = [];

  if (tokenizer.token.match(types.IDENTIFIER)) {
    const keys = [tokenizer.token.value];

    tokenizer.skipToken();

    while (tokenizer.token.match(types.DOT, types.OPEN_SQUARE_BRACKET)) {
      const token = tokenizer.token;

      tokenizer.skipToken();

      const isValidKey = token.match(types.OPEN_SQUARE_BRACKET) ?
        tokenizer.token.match(types.CONSTANT) :
        (
          (tokenizer.token.match(types.CONSTANT) && (typeof tokenizer.token.value === 'number')) ||
          tokenizer.token.match(types.IDENTIFIER)
        );

      if (!isValidKey) {
        throw new SyntaxError('Unexpected object key notation');
      }

      keys.push(tokenizer.token.value);
      tokenizer.skipToken();

      if (token.match(types.OPEN_SQUARE_BRACKET)) {
        if (!tokenizer.token.match(types.CLOSE_SQUARE_BRACKET)) {
          throw new SyntaxError('Closing square bracket expected');
        }

        tokenizer.skipToken();
      }
    }

    const identifier = keys.join('.');

    if (!tokenizer.token.match(types.OPEN_PARENTHESES)) {
      scope.identifiers.push(identifier);

      return createIdentifierNode(identifier);
    }

    params = [];
    tokenizer.skipToken();
    if (!tokenizer.token.match(types.CLOSE_PARENTHESES)) {
      params.push(processLogicalOr(tokenizer, scope));

      while (tokenizer.token.match(types.DELIMITER)) {
        params.push(processLogicalOr(tokenizer.skipToken(), scope));
      }
    }

    if (!tokenizer.token.match(types.CLOSE_PARENTHESES)) {
      throw new SyntaxError('Unexpected end of expression');
    }

    tokenizer.skipToken();
    return createOperatorNode(identifier, params);
  }

  return processConstants(tokenizer, scope);
}
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
		}
	}
1372389
public final void mSTRING() throws RecognitionException {
		try {
			int _type = STRING;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:108:5: ( ( '\"' ( EscapeSequence |~ ( '\\\\' | '\"' ) )* '\"' ) | ( '\\'' ( EscapeSequence |~ ( '\\\\' | '\\'' ) )* '\\'' ) )
			int alt22=2;
			int LA22_0 = input.LA(1);
			if ( (LA22_0=='\"') ) {
				alt22=1;
			}
			else if ( (LA22_0=='\'') ) {
				alt22=2;
			}

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

			switch (alt22) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:108:8: ( '\"' ( EscapeSequence |~ ( '\\\\' | '\"' ) )* '\"' )
					{
					// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:108:8: ( '\"' ( EscapeSequence |~ ( '\\\\' | '\"' ) )* '\"' )
					// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:108:9: '\"' ( EscapeSequence |~ ( '\\\\' | '\"' ) )* '\"'
					{
					match('\"'); if (state.failed) return;
					// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:108:13: ( EscapeSequence |~ ( '\\\\' | '\"' ) )*
					loop20:
					while (true) {
						int alt20=3;
						int LA20_0 = input.LA(1);
						if ( (LA20_0=='\\') ) {
							alt20=1;
						}
						else if ( ((LA20_0 >= '\u0000' && LA20_0 <= '!')||(LA20_0 >= '#' && LA20_0 <= '[')||(LA20_0 >= ']' && LA20_0 <= '\uFFFF')) ) {
							alt20=2;
						}

						switch (alt20) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:108:15: EscapeSequence
							{
							mEscapeSequence(); if (state.failed) return;

							}
							break;
						case 2 :
							// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:108:32: ~ ( '\\\\' | '\"' )
							{
							if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '!')||(input.LA(1) >= '#' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) {
								input.consume();
								state.failed=false;
							}
							else {
								if (state.backtracking>0) {state.failed=true; return;}
								MismatchedSetException mse = new MismatchedSetException(null,input);
								recover(mse);
								throw mse;
							}
							}
							break;

						default :
							break loop20;
						}
					}

					match('\"'); if (state.failed) return;
					}

					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:109:8: ( '\\'' ( EscapeSequence |~ ( '\\\\' | '\\'' ) )* '\\'' )
					{
					// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:109:8: ( '\\'' ( EscapeSequence |~ ( '\\\\' | '\\'' ) )* '\\'' )
					// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:109:9: '\\'' ( EscapeSequence |~ ( '\\\\' | '\\'' ) )* '\\''
					{
					match('\''); if (state.failed) return;
					// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:109:14: ( EscapeSequence |~ ( '\\\\' | '\\'' ) )*
					loop21:
					while (true) {
						int alt21=3;
						int LA21_0 = input.LA(1);
						if ( (LA21_0=='\\') ) {
							alt21=1;
						}
						else if ( ((LA21_0 >= '\u0000' && LA21_0 <= '&')||(LA21_0 >= '(' && LA21_0 <= '[')||(LA21_0 >= ']' && LA21_0 <= '\uFFFF')) ) {
							alt21=2;
						}

						switch (alt21) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:109:16: EscapeSequence
							{
							mEscapeSequence(); if (state.failed) return;

							}
							break;
						case 2 :
							// src/main/resources/org/drools/compiler/lang/DRL6Lexer.g:109:33: ~ ( '\\\\' | '\\'' )
							{
							if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&')||(input.LA(1) >= '(' && input.LA(1) <= '[')||(input.LA(1) >= ']' && input.LA(1) <= '\uFFFF') ) {
								input.consume();
								state.failed=false;
							}
							else {
								if (state.backtracking>0) {state.failed=true; return;}
								MismatchedSetException mse = new MismatchedSetException(null,input);
								recover(mse);
								throw mse;
							}
							}
							break;

						default :
							break loop21;
						}
					}

					match('\''); if (state.failed) return;
					}

					if ( state.backtracking==0 ) { setText( normalizeString( getText() ) ); }
					}
					break;

			}
			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
388786
public final void enumDeclaration() throws RecognitionException {
		int enumDeclaration_StartIndex = input.index();

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

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:318:5: ( ENUM Identifier ( 'implements' typeList )? enumBody )
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:318:7: ENUM Identifier ( 'implements' typeList )? enumBody
			{
			match(input,ENUM,FOLLOW_ENUM_in_enumDeclaration411); if (state.failed) return;
			match(input,Identifier,FOLLOW_Identifier_in_enumDeclaration413); if (state.failed) return;
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:318:23: ( 'implements' typeList )?
			int alt18=2;
			int LA18_0 = input.LA(1);
			if ( (LA18_0==88) ) {
				alt18=1;
			}
			switch (alt18) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:318:24: 'implements' typeList
					{
					match(input,88,FOLLOW_88_in_enumDeclaration416); if (state.failed) return;
					pushFollow(FOLLOW_typeList_in_enumDeclaration418);
					typeList();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}

			pushFollow(FOLLOW_enumBody_in_enumDeclaration422);
			enumBody();
			state._fsp--;
			if (state.failed) return;
			}

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

		}
	}
32507
public final void synpred249_Java_fragment() throws RecognitionException {
		// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1219:17: ( '.' Identifier )
		// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1219:17: '.' Identifier
		{
		match(input,47,FOLLOW_47_in_synpred249_Java5695); if (state.failed) return;
		match(input,Identifier,FOLLOW_Identifier_in_synpred249_Java5697); if (state.failed) return;
		}

	}
1111694
public final void this_key() throws RecognitionException {
		Token id=null;

		try {
			// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:796:5: ({...}? =>id= ID )
			// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:796:12: {...}? =>id= ID
			{
			if ( !(((helper.validateIdentifierKey(DroolsSoftKeywords.THIS)))) ) {
				if (state.backtracking>0) {state.failed=true; return;}
				throw new FailedPredicateException(input, "this_key", "(helper.validateIdentifierKey(DroolsSoftKeywords.THIS))");
			}
			id=(Token)match(input,ID,FOLLOW_ID_in_this_key5085); if (state.failed) return;
			if ( state.backtracking==0 ) { helper.emit(id, DroolsEditorType.KEYWORD); }
			}

		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
735671
public final void importDeclaration() throws RecognitionException {
		int importDeclaration_StartIndex = input.index();

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

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:281:5: ( 'import' ( 'static' )? Identifier ( '.' Identifier )* ( '.' '*' )? ';' )
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:281:7: 'import' ( 'static' )? Identifier ( '.' Identifier )* ( '.' '*' )? ';'
			{
			match(input,89,FOLLOW_89_in_importDeclaration153); if (state.failed) return;
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:281:16: ( 'static' )?
			int alt5=2;
			int LA5_0 = input.LA(1);
			if ( (LA5_0==106) ) {
				alt5=1;
			}
			switch (alt5) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:281:16: 'static'
					{
					match(input,106,FOLLOW_106_in_importDeclaration155); if (state.failed) return;
					}
					break;

			}

			match(input,Identifier,FOLLOW_Identifier_in_importDeclaration158); if (state.failed) return;
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:281:37: ( '.' Identifier )*
			loop6:
			while (true) {
				int alt6=2;
				int LA6_0 = input.LA(1);
				if ( (LA6_0==47) ) {
					int LA6_1 = input.LA(2);
					if ( (LA6_1==Identifier) ) {
						alt6=1;
					}

				}

				switch (alt6) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:281:38: '.' Identifier
					{
					match(input,47,FOLLOW_47_in_importDeclaration161); if (state.failed) return;
					match(input,Identifier,FOLLOW_Identifier_in_importDeclaration163); if (state.failed) return;
					}
					break;

				default :
					break loop6;
				}
			}

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:281:55: ( '.' '*' )?
			int alt7=2;
			int LA7_0 = input.LA(1);
			if ( (LA7_0==47) ) {
				alt7=1;
			}
			switch (alt7) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:281:56: '.' '*'
					{
					match(input,47,FOLLOW_47_in_importDeclaration168); if (state.failed) return;
					match(input,38,FOLLOW_38_in_importDeclaration170); if (state.failed) return;
					}
					break;

			}

			match(input,52,FOLLOW_52_in_importDeclaration174); if (state.failed) return;
			}

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

		}
	}
782411
function(identifier, typemap, args, error) {
		var bufArray = [ new Buffer([ module.exports.EnumExecutionCode.ExecFunction ]) ];
		bufArray.push(new Buffer(4)); // [1] = reserverd for total payload size, minus the execution code
		
		var buf = new Buffer(4);
		buf.writeUInt32LE(identifier.length);
		bufArray.push(buf);
		
		var tempBuf = new Buffer(identifier);
		bufArray.push(tempBuf);
		
		var payloadLength = 4 + identifier.length;
		for(var i = 0; i < args.length; i++) {
			var iStr = i.toString();
			var argtype = typemap[iStr];
			
			if(!argtype) {
				if(args[i] === null) {
					argtype = 'null';
				}
				else {
					switch(typeof args[i]) {
						case 'number':
							if(args[i] === (args[i]|0)) {
								argtype = 'int'; // Default to int for normal numbers
							}
							else {
								argtype = 'float'; // float for anything else
							}
							break;
						case 'string':
							argtype = 'string';
							break;
						case 'boolean':
							argtype = 'boolean';
							break;
						case 'undefined':
							argtype = 'undefined';
							break;
					}
				}
				typemap[iStr] = argtype;
			}
			
			var dataType = module.exports.EnumDataType[argtype];
			if(dataType !== undefined) {
				switch(dataType) {
					case module.exports.EnumDataType.byte:
						tempBuf = new Buffer(1);
						tempBuf.writeInt8(args[i], 0);
						break;
					case module.exports.EnumDataType.ubyte:
						tempBuf = new Buffer(1);
						tempBuf.writeUInt8(args[i], 0);
						break;
					case module.exports.EnumDataType.short:
						tempBuf = new Buffer(2);
						tempBuf.writeInt16LE(args[i], 0);
						break;
					case module.exports.EnumDataType.ushort:
						tempBuf = new Buffer(2);
						tempBuf.writeUInt16LE(args[i], 0);
						break;
					case module.exports.EnumDataType.int:
						tempBuf = new Buffer(4);
						tempBuf.writeInt32LE(args[i], 0);
						break;
					case module.exports.EnumDataType.uint:
						tempBuf = new Buffer(4);
						tempBuf.writeUInt32LE(args[i], 0);
						break;
					case module.exports.EnumDataType.float:
						tempBuf = new Buffer(4);
						tempBuf.writeFloatLE(args[i], 0);
						break;
					case module.exports.EnumDataType.double:
						tempBuf = new Buffer(8);
						tempBuf.writeDoubleLE(args[i], 0);
						break;
					case module.exports.EnumDataType.string:
						tempBuf = new Buffer(args[i]);
						break;
					case module.exports.EnumDataType.boolean:
						tempBuf = new Buffer(1);
						tempBuf.writeUInt8(args[i] ? 0x1 : 0x0, 0);
						break;
					case module.exports.EnumDataType.undefined:
					case module.exports.EnumDataType.null:
						tempBuf = new Buffer(0);
						break;
					default:
						error(new Error('Data type ' + dataType + ' has gone unhandled by client'));
						return;
				}
				var argHeader = new Buffer(5);
				argHeader.writeUInt8(dataType, 0);
				argHeader.writeUInt32LE(tempBuf.length, 1);
				bufArray.push(argHeader);
				bufArray.push(tempBuf);
				
				payloadLength += argHeader.length + tempBuf.length;
			}
			else {
				error(new Error('Unsupported data type argument passed to remote function'));
				return;
			}
		}
		
		bufArray[1].writeUInt32LE(payloadLength);
		
		return Buffer.concat(bufArray);
	}
1356866
public final void mLITERAL() throws RecognitionException {
		try {
			int _type = LITERAL;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:325:5: ( ( IdentifierPart | MISC | EscapeSequence | DOT )+ )
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:325:7: ( IdentifierPart | MISC | EscapeSequence | DOT )+
			{
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:325:7: ( IdentifierPart | MISC | EscapeSequence | DOT )+
			int cnt3=0;
			loop3:
			while (true) {
				int alt3=5;
				int LA3_0 = input.LA(1);
				if ( ((LA3_0 >= '\u0000' && LA3_0 <= '\b')||(LA3_0 >= '\u000E' && LA3_0 <= '\u001B')||LA3_0=='$'||(LA3_0 >= '0' && LA3_0 <= '9')||(LA3_0 >= 'A' && LA3_0 <= 'Z')||LA3_0=='_'||(LA3_0 >= 'a' && LA3_0 <= 'z')||(LA3_0 >= '\u007F' && LA3_0 <= '\u009F')||(LA3_0 >= '\u00A2' && LA3_0 <= '\u00A5')||LA3_0=='\u00AA'||LA3_0=='\u00AD'||LA3_0=='\u00B5'||LA3_0=='\u00BA'||(LA3_0 >= '\u00C0' && LA3_0 <= '\u00D6')||(LA3_0 >= '\u00D8' && LA3_0 <= '\u00F6')||(LA3_0 >= '\u00F8' && LA3_0 <= '\u0236')||(LA3_0 >= '\u0250' && LA3_0 <= '\u02C1')||(LA3_0 >= '\u02C6' && LA3_0 <= '\u02D1')||(LA3_0 >= '\u02E0' && LA3_0 <= '\u02E4')||LA3_0=='\u02EE'||(LA3_0 >= '\u0300' && LA3_0 <= '\u0357')||(LA3_0 >= '\u035D' && LA3_0 <= '\u036F')||LA3_0=='\u037A'||LA3_0=='\u0386'||(LA3_0 >= '\u0388' && LA3_0 <= '\u038A')||LA3_0=='\u038C'||(LA3_0 >= '\u038E' && LA3_0 <= '\u03A1')||(LA3_0 >= '\u03A3' && LA3_0 <= '\u03CE')||(LA3_0 >= '\u03D0' && LA3_0 <= '\u03F5')||(LA3_0 >= '\u03F7' && LA3_0 <= '\u03FB')||(LA3_0 >= '\u0400' && LA3_0 <= '\u0481')||(LA3_0 >= '\u0483' && LA3_0 <= '\u0486')||(LA3_0 >= '\u048A' && LA3_0 <= '\u04CE')||(LA3_0 >= '\u04D0' && LA3_0 <= '\u04F5')||(LA3_0 >= '\u04F8' && LA3_0 <= '\u04F9')||(LA3_0 >= '\u0500' && LA3_0 <= '\u050F')||(LA3_0 >= '\u0531' && LA3_0 <= '\u0556')||LA3_0=='\u0559'||(LA3_0 >= '\u0561' && LA3_0 <= '\u0587')||(LA3_0 >= '\u0591' && LA3_0 <= '\u05A1')||(LA3_0 >= '\u05A3' && LA3_0 <= '\u05B9')||(LA3_0 >= '\u05BB' && LA3_0 <= '\u05BD')||LA3_0=='\u05BF'||(LA3_0 >= '\u05C1' && LA3_0 <= '\u05C2')||LA3_0=='\u05C4'||(LA3_0 >= '\u05D0' && LA3_0 <= '\u05EA')||(LA3_0 >= '\u05F0' && LA3_0 <= '\u05F2')||(LA3_0 >= '\u0600' && LA3_0 <= '\u0603')||(LA3_0 >= '\u0610' && LA3_0 <= '\u0615')||(LA3_0 >= '\u0621' && LA3_0 <= '\u063A')||(LA3_0 >= '\u0640' && LA3_0 <= '\u0658')||(LA3_0 >= '\u0660' && LA3_0 <= '\u0669')||(LA3_0 >= '\u066E' && LA3_0 <= '\u06D3')||(LA3_0 >= '\u06D5' && LA3_0 <= '\u06DD')||(LA3_0 >= '\u06DF' && LA3_0 <= '\u06E8')||(LA3_0 >= '\u06EA' && LA3_0 <= '\u06FC')||LA3_0=='\u06FF'||(LA3_0 >= '\u070F' && LA3_0 <= '\u074A')||(LA3_0 >= '\u074D' && LA3_0 <= '\u074F')||(LA3_0 >= '\u0780' && LA3_0 <= '\u07B1')||(LA3_0 >= '\u0901' && LA3_0 <= '\u0939')||(LA3_0 >= '\u093C' && LA3_0 <= '\u094D')||(LA3_0 >= '\u0950' && LA3_0 <= '\u0954')||(LA3_0 >= '\u0958' && LA3_0 <= '\u0963')||(LA3_0 >= '\u0966' && LA3_0 <= '\u096F')||(LA3_0 >= '\u0981' && LA3_0 <= '\u0983')||(LA3_0 >= '\u0985' && LA3_0 <= '\u098C')||(LA3_0 >= '\u098F' && LA3_0 <= '\u0990')||(LA3_0 >= '\u0993' && LA3_0 <= '\u09A8')||(LA3_0 >= '\u09AA' && LA3_0 <= '\u09B0')||LA3_0=='\u09B2'||(LA3_0 >= '\u09B6' && LA3_0 <= '\u09B9')||(LA3_0 >= '\u09BC' && LA3_0 <= '\u09C4')||(LA3_0 >= '\u09C7' && LA3_0 <= '\u09C8')||(LA3_0 >= '\u09CB' && LA3_0 <= '\u09CD')||LA3_0=='\u09D7'||(LA3_0 >= '\u09DC' && LA3_0 <= '\u09DD')||(LA3_0 >= '\u09DF' && LA3_0 <= '\u09E3')||(LA3_0 >= '\u09E6' && LA3_0 <= '\u09F3')||(LA3_0 >= '\u0A01' && LA3_0 <= '\u0A03')||(LA3_0 >= '\u0A05' && LA3_0 <= '\u0A0A')||(LA3_0 >= '\u0A0F' && LA3_0 <= '\u0A10')||(LA3_0 >= '\u0A13' && LA3_0 <= '\u0A28')||(LA3_0 >= '\u0A2A' && LA3_0 <= '\u0A30')||(LA3_0 >= '\u0A32' && LA3_0 <= '\u0A33')||(LA3_0 >= '\u0A35' && LA3_0 <= '\u0A36')||(LA3_0 >= '\u0A38' && LA3_0 <= '\u0A39')||LA3_0=='\u0A3C'||(LA3_0 >= '\u0A3E' && LA3_0 <= '\u0A42')||(LA3_0 >= '\u0A47' && LA3_0 <= '\u0A48')||(LA3_0 >= '\u0A4B' && LA3_0 <= '\u0A4D')||(LA3_0 >= '\u0A59' && LA3_0 <= '\u0A5C')||LA3_0=='\u0A5E'||(LA3_0 >= '\u0A66' && LA3_0 <= '\u0A74')||(LA3_0 >= '\u0A81' && LA3_0 <= '\u0A83')||(LA3_0 >= '\u0A85' && LA3_0 <= '\u0A8D')||(LA3_0 >= '\u0A8F' && LA3_0 <= '\u0A91')||(LA3_0 >= '\u0A93' && LA3_0 <= '\u0AA8')||(LA3_0 >= '\u0AAA' && LA3_0 <= '\u0AB0')||(LA3_0 >= '\u0AB2' && LA3_0 <= '\u0AB3')||(LA3_0 >= '\u0AB5' && LA3_0 <= '\u0AB9')||(LA3_0 >= '\u0ABC' && LA3_0 <= '\u0AC5')||(LA3_0 >= '\u0AC7' && LA3_0 <= '\u0AC9')||(LA3_0 >= '\u0ACB' && LA3_0 <= '\u0ACD')||LA3_0=='\u0AD0'||(LA3_0 >= '\u0AE0' && LA3_0 <= '\u0AE3')||(LA3_0 >= '\u0AE6' && LA3_0 <= '\u0AEF')||LA3_0=='\u0AF1'||(LA3_0 >= '\u0B01' && LA3_0 <= '\u0B03')||(LA3_0 >= '\u0B05' && LA3_0 <= '\u0B0C')||(LA3_0 >= '\u0B0F' && LA3_0 <= '\u0B10')||(LA3_0 >= '\u0B13' && LA3_0 <= '\u0B28')||(LA3_0 >= '\u0B2A' && LA3_0 <= '\u0B30')||(LA3_0 >= '\u0B32' && LA3_0 <= '\u0B33')||(LA3_0 >= '\u0B35' && LA3_0 <= '\u0B39')||(LA3_0 >= '\u0B3C' && LA3_0 <= '\u0B43')||(LA3_0 >= '\u0B47' && LA3_0 <= '\u0B48')||(LA3_0 >= '\u0B4B' && LA3_0 <= '\u0B4D')||(LA3_0 >= '\u0B56' && LA3_0 <= '\u0B57')||(LA3_0 >= '\u0B5C' && LA3_0 <= '\u0B5D')||(LA3_0 >= '\u0B5F' && LA3_0 <= '\u0B61')||(LA3_0 >= '\u0B66' && LA3_0 <= '\u0B6F')||LA3_0=='\u0B71'||(LA3_0 >= '\u0B82' && LA3_0 <= '\u0B83')||(LA3_0 >= '\u0B85' && LA3_0 <= '\u0B8A')||(LA3_0 >= '\u0B8E' && LA3_0 <= '\u0B90')||(LA3_0 >= '\u0B92' && LA3_0 <= '\u0B95')||(LA3_0 >= '\u0B99' && LA3_0 <= '\u0B9A')||LA3_0=='\u0B9C'||(LA3_0 >= '\u0B9E' && LA3_0 <= '\u0B9F')||(LA3_0 >= '\u0BA3' && LA3_0 <= '\u0BA4')||(LA3_0 >= '\u0BA8' && LA3_0 <= '\u0BAA')||(LA3_0 >= '\u0BAE' && LA3_0 <= '\u0BB5')||(LA3_0 >= '\u0BB7' && LA3_0 <= '\u0BB9')||(LA3_0 >= '\u0BBE' && LA3_0 <= '\u0BC2')||(LA3_0 >= '\u0BC6' && LA3_0 <= '\u0BC8')||(LA3_0 >= '\u0BCA' && LA3_0 <= '\u0BCD')||LA3_0=='\u0BD7'||(LA3_0 >= '\u0BE7' && LA3_0 <= '\u0BEF')||LA3_0=='\u0BF9'||(LA3_0 >= '\u0C01' && LA3_0 <= '\u0C03')||(LA3_0 >= '\u0C05' && LA3_0 <= '\u0C0C')||(LA3_0 >= '\u0C0E' && LA3_0 <= '\u0C10')||(LA3_0 >= '\u0C12' && LA3_0 <= '\u0C28')||(LA3_0 >= '\u0C2A' && LA3_0 <= '\u0C33')||(LA3_0 >= '\u0C35' && LA3_0 <= '\u0C39')||(LA3_0 >= '\u0C3E' && LA3_0 <= '\u0C44')||(LA3_0 >= '\u0C46' && LA3_0 <= '\u0C48')||(LA3_0 >= '\u0C4A' && LA3_0 <= '\u0C4D')||(LA3_0 >= '\u0C55' && LA3_0 <= '\u0C56')||(LA3_0 >= '\u0C60' && LA3_0 <= '\u0C61')||(LA3_0 >= '\u0C66' && LA3_0 <= '\u0C6F')||(LA3_0 >= '\u0C82' && LA3_0 <= '\u0C83')||(LA3_0 >= '\u0C85' && LA3_0 <= '\u0C8C')||(LA3_0 >= '\u0C8E' && LA3_0 <= '\u0C90')||(LA3_0 >= '\u0C92' && LA3_0 <= '\u0CA8')||(LA3_0 >= '\u0CAA' && LA3_0 <= '\u0CB3')||(LA3_0 >= '\u0CB5' && LA3_0 <= '\u0CB9')||(LA3_0 >= '\u0CBC' && LA3_0 <= '\u0CC4')||(LA3_0 >= '\u0CC6' && LA3_0 <= '\u0CC8')||(LA3_0 >= '\u0CCA' && LA3_0 <= '\u0CCD')||(LA3_0 >= '\u0CD5' && LA3_0 <= '\u0CD6')||LA3_0=='\u0CDE'||(LA3_0 >= '\u0CE0' && LA3_0 <= '\u0CE1')||(LA3_0 >= '\u0CE6' && LA3_0 <= '\u0CEF')||(LA3_0 >= '\u0D02' && LA3_0 <= '\u0D03')||(LA3_0 >= '\u0D05' && LA3_0 <= '\u0D0C')||(LA3_0 >= '\u0D0E' && LA3_0 <= '\u0D10')||(LA3_0 >= '\u0D12' && LA3_0 <= '\u0D28')||(LA3_0 >= '\u0D2A' && LA3_0 <= '\u0D39')||(LA3_0 >= '\u0D3E' && LA3_0 <= '\u0D43')||(LA3_0 >= '\u0D46' && LA3_0 <= '\u0D48')||(LA3_0 >= '\u0D4A' && LA3_0 <= '\u0D4D')||LA3_0=='\u0D57'||(LA3_0 >= '\u0D60' && LA3_0 <= '\u0D61')||(LA3_0 >= '\u0D66' && LA3_0 <= '\u0D6F')||(LA3_0 >= '\u0D82' && LA3_0 <= '\u0D83')||(LA3_0 >= '\u0D85' && LA3_0 <= '\u0D96')||(LA3_0 >= '\u0D9A' && LA3_0 <= '\u0DB1')||(LA3_0 >= '\u0DB3' && LA3_0 <= '\u0DBB')||LA3_0=='\u0DBD'||(LA3_0 >= '\u0DC0' && LA3_0 <= '\u0DC6')||LA3_0=='\u0DCA'||(LA3_0 >= '\u0DCF' && LA3_0 <= '\u0DD4')||LA3_0=='\u0DD6'||(LA3_0 >= '\u0DD8' && LA3_0 <= '\u0DDF')||(LA3_0 >= '\u0DF2' && LA3_0 <= '\u0DF3')||(LA3_0 >= '\u0E01' && LA3_0 <= '\u0E3A')||(LA3_0 >= '\u0E3F' && LA3_0 <= '\u0E4E')||(LA3_0 >= '\u0E50' && LA3_0 <= '\u0E59')||(LA3_0 >= '\u0E81' && LA3_0 <= '\u0E82')||LA3_0=='\u0E84'||(LA3_0 >= '\u0E87' && LA3_0 <= '\u0E88')||LA3_0=='\u0E8A'||LA3_0=='\u0E8D'||(LA3_0 >= '\u0E94' && LA3_0 <= '\u0E97')||(LA3_0 >= '\u0E99' && LA3_0 <= '\u0E9F')||(LA3_0 >= '\u0EA1' && LA3_0 <= '\u0EA3')||LA3_0=='\u0EA5'||LA3_0=='\u0EA7'||(LA3_0 >= '\u0EAA' && LA3_0 <= '\u0EAB')||(LA3_0 >= '\u0EAD' && LA3_0 <= '\u0EB9')||(LA3_0 >= '\u0EBB' && LA3_0 <= '\u0EBD')||(LA3_0 >= '\u0EC0' && LA3_0 <= '\u0EC4')||LA3_0=='\u0EC6'||(LA3_0 >= '\u0EC8' && LA3_0 <= '\u0ECD')||(LA3_0 >= '\u0ED0' && LA3_0 <= '\u0ED9')||(LA3_0 >= '\u0EDC' && LA3_0 <= '\u0EDD')||LA3_0=='\u0F00'||(LA3_0 >= '\u0F18' && LA3_0 <= '\u0F19')||(LA3_0 >= '\u0F20' && LA3_0 <= '\u0F29')||LA3_0=='\u0F35'||LA3_0=='\u0F37'||LA3_0=='\u0F39'||(LA3_0 >= '\u0F3E' && LA3_0 <= '\u0F47')||(LA3_0 >= '\u0F49' && LA3_0 <= '\u0F6A')||(LA3_0 >= '\u0F71' && LA3_0 <= '\u0F84')||(LA3_0 >= '\u0F86' && LA3_0 <= '\u0F8B')||(LA3_0 >= '\u0F90' && LA3_0 <= '\u0F97')||(LA3_0 >= '\u0F99' && LA3_0 <= '\u0FBC')||LA3_0=='\u0FC6'||(LA3_0 >= '\u1000' && LA3_0 <= '\u1021')||(LA3_0 >= '\u1023' && LA3_0 <= '\u1027')||(LA3_0 >= '\u1029' && LA3_0 <= '\u102A')||(LA3_0 >= '\u102C' && LA3_0 <= '\u1032')||(LA3_0 >= '\u1036' && LA3_0 <= '\u1039')||(LA3_0 >= '\u1040' && LA3_0 <= '\u1049')||(LA3_0 >= '\u1050' && LA3_0 <= '\u1059')||(LA3_0 >= '\u10A0' && LA3_0 <= '\u10C5')||(LA3_0 >= '\u10D0' && LA3_0 <= '\u10F8')||(LA3_0 >= '\u1100' && LA3_0 <= '\u1159')||(LA3_0 >= '\u115F' && LA3_0 <= '\u11A2')||(LA3_0 >= '\u11A8' && LA3_0 <= '\u11F9')||(LA3_0 >= '\u1200' && LA3_0 <= '\u1206')||(LA3_0 >= '\u1208' && LA3_0 <= '\u1246')||LA3_0=='\u1248'||(LA3_0 >= '\u124A' && LA3_0 <= '\u124D')||(LA3_0 >= '\u1250' && LA3_0 <= '\u1256')||LA3_0=='\u1258'||(LA3_0 >= '\u125A' && LA3_0 <= '\u125D')||(LA3_0 >= '\u1260' && LA3_0 <= '\u1286')||LA3_0=='\u1288'||(LA3_0 >= '\u128A' && LA3_0 <= '\u128D')||(LA3_0 >= '\u1290' && LA3_0 <= '\u12AE')||LA3_0=='\u12B0'||(LA3_0 >= '\u12B2' && LA3_0 <= '\u12B5')||(LA3_0 >= '\u12B8' && LA3_0 <= '\u12BE')||LA3_0=='\u12C0'||(LA3_0 >= '\u12C2' && LA3_0 <= '\u12C5')||(LA3_0 >= '\u12C8' && LA3_0 <= '\u12CE')||(LA3_0 >= '\u12D0' && LA3_0 <= '\u12D6')||(LA3_0 >= '\u12D8' && LA3_0 <= '\u12EE')||(LA3_0 >= '\u12F0' && LA3_0 <= '\u130E')||LA3_0=='\u1310'||(LA3_0 >= '\u1312' && LA3_0 <= '\u1315')||(LA3_0 >= '\u1318' && LA3_0 <= '\u131E')||(LA3_0 >= '\u1320' && LA3_0 <= '\u1346')||(LA3_0 >= '\u1348' && LA3_0 <= '\u135A')||(LA3_0 >= '\u1369' && LA3_0 <= '\u1371')||(LA3_0 >= '\u13A0' && LA3_0 <= '\u13F4')||(LA3_0 >= '\u1401' && LA3_0 <= '\u166C')||(LA3_0 >= '\u166F' && LA3_0 <= '\u1676')||(LA3_0 >= '\u1681' && LA3_0 <= '\u169A')||(LA3_0 >= '\u16A0' && LA3_0 <= '\u16EA')||(LA3_0 >= '\u16EE' && LA3_0 <= '\u16F0')||(LA3_0 >= '\u1700' && LA3_0 <= '\u170C')||(LA3_0 >= '\u170E' && LA3_0 <= '\u1714')||(LA3_0 >= '\u1720' && LA3_0 <= '\u1734')||(LA3_0 >= '\u1740' && LA3_0 <= '\u1753')||(LA3_0 >= '\u1760' && LA3_0 <= '\u176C')||(LA3_0 >= '\u176E' && LA3_0 <= '\u1770')||(LA3_0 >= '\u1772' && LA3_0 <= '\u1773')||(LA3_0 >= '\u1780' && LA3_0 <= '\u17D3')||LA3_0=='\u17D7'||(LA3_0 >= '\u17DB' && LA3_0 <= '\u17DD')||(LA3_0 >= '\u17E0' && LA3_0 <= '\u17E9')||(LA3_0 >= '\u180B' && LA3_0 <= '\u180D')||(LA3_0 >= '\u1810' && LA3_0 <= '\u1819')||(LA3_0 >= '\u1820' && LA3_0 <= '\u1877')||(LA3_0 >= '\u1880' && LA3_0 <= '\u18A9')||(LA3_0 >= '\u1900' && LA3_0 <= '\u191C')||(LA3_0 >= '\u1920' && LA3_0 <= '\u192B')||(LA3_0 >= '\u1930' && LA3_0 <= '\u193B')||(LA3_0 >= '\u1946' && LA3_0 <= '\u196D')||(LA3_0 >= '\u1970' && LA3_0 <= '\u1974')||(LA3_0 >= '\u1D00' && LA3_0 <= '\u1D6B')||(LA3_0 >= '\u1E00' && LA3_0 <= '\u1E9B')||(LA3_0 >= '\u1EA0' && LA3_0 <= '\u1EF9')||(LA3_0 >= '\u1F00' && LA3_0 <= '\u1F15')||(LA3_0 >= '\u1F18' && LA3_0 <= '\u1F1D')||(LA3_0 >= '\u1F20' && LA3_0 <= '\u1F45')||(LA3_0 >= '\u1F48' && LA3_0 <= '\u1F4D')||(LA3_0 >= '\u1F50' && LA3_0 <= '\u1F57')||LA3_0=='\u1F59'||LA3_0=='\u1F5B'||LA3_0=='\u1F5D'||(LA3_0 >= '\u1F5F' && LA3_0 <= '\u1F7D')||(LA3_0 >= '\u1F80' && LA3_0 <= '\u1FB4')||(LA3_0 >= '\u1FB6' && LA3_0 <= '\u1FBC')||LA3_0=='\u1FBE'||(LA3_0 >= '\u1FC2' && LA3_0 <= '\u1FC4')||(LA3_0 >= '\u1FC6' && LA3_0 <= '\u1FCC')||(LA3_0 >= '\u1FD0' && LA3_0 <= '\u1FD3')||(LA3_0 >= '\u1FD6' && LA3_0 <= '\u1FDB')||(LA3_0 >= '\u1FE0' && LA3_0 <= '\u1FEC')||(LA3_0 >= '\u1FF2' && LA3_0 <= '\u1FF4')||(LA3_0 >= '\u1FF6' && LA3_0 <= '\u1FFC')||(LA3_0 >= '\u200C' && LA3_0 <= '\u200F')||(LA3_0 >= '\u202A' && LA3_0 <= '\u202E')||(LA3_0 >= '\u203F' && LA3_0 <= '\u2040')||LA3_0=='\u2054'||(LA3_0 >= '\u2060' && LA3_0 <= '\u2063')||(LA3_0 >= '\u206A' && LA3_0 <= '\u206F')||LA3_0=='\u2071'||LA3_0=='\u207F'||(LA3_0 >= '\u20A0' && LA3_0 <= '\u20B1')||(LA3_0 >= '\u20D0' && LA3_0 <= '\u20DC')||LA3_0=='\u20E1'||(LA3_0 >= '\u20E5' && LA3_0 <= '\u20EA')||LA3_0=='\u2102'||LA3_0=='\u2107'||(LA3_0 >= '\u210A' && LA3_0 <= '\u2113')||LA3_0=='\u2115'||(LA3_0 >= '\u2119' && LA3_0 <= '\u211D')||LA3_0=='\u2124'||LA3_0=='\u2126'||LA3_0=='\u2128'||(LA3_0 >= '\u212A' && LA3_0 <= '\u212D')||(LA3_0 >= '\u212F' && LA3_0 <= '\u2131')||(LA3_0 >= '\u2133' && LA3_0 <= '\u2139')||(LA3_0 >= '\u213D' && LA3_0 <= '\u213F')||(LA3_0 >= '\u2145' && LA3_0 <= '\u2149')||(LA3_0 >= '\u2160' && LA3_0 <= '\u2183')||LA3_0=='\u3000'||(LA3_0 >= '\u3005' && LA3_0 <= '\u3007')||(LA3_0 >= '\u3021' && LA3_0 <= '\u302F')||(LA3_0 >= '\u3031' && LA3_0 <= '\u3035')||(LA3_0 >= '\u3038' && LA3_0 <= '\u303C')||(LA3_0 >= '\u3041' && LA3_0 <= '\u3096')||(LA3_0 >= '\u3099' && LA3_0 <= '\u309A')||(LA3_0 >= '\u309D' && LA3_0 <= '\u309F')||(LA3_0 >= '\u30A1' && LA3_0 <= '\u30FF')||(LA3_0 >= '\u3105' && LA3_0 <= '\u312C')||(LA3_0 >= '\u3131' && LA3_0 <= '\u318E')||(LA3_0 >= '\u31A0' && LA3_0 <= '\u31B7')||(LA3_0 >= '\u31F0' && LA3_0 <= '\u31FF')||(LA3_0 >= '\u3400' && LA3_0 <= '\u4DB5')||(LA3_0 >= '\u4E00' && LA3_0 <= '\u9FA5')||(LA3_0 >= '\uA000' && LA3_0 <= '\uA48C')||(LA3_0 >= '\uAC00' && LA3_0 <= '\uD7A3')||(LA3_0 >= '\uF900' && LA3_0 <= '\uFA2D')||(LA3_0 >= '\uFA30' && LA3_0 <= '\uFA6A')||(LA3_0 >= '\uFB00' && LA3_0 <= '\uFB06')||(LA3_0 >= '\uFB13' && LA3_0 <= '\uFB17')||(LA3_0 >= '\uFB1D' && LA3_0 <= '\uFB28')||(LA3_0 >= '\uFB2A' && LA3_0 <= '\uFB36')||(LA3_0 >= '\uFB38' && LA3_0 <= '\uFB3C')||LA3_0=='\uFB3E'||(LA3_0 >= '\uFB40' && LA3_0 <= '\uFB41')||(LA3_0 >= '\uFB43' && LA3_0 <= '\uFB44')||(LA3_0 >= '\uFB46' && LA3_0 <= '\uFBB1')||(LA3_0 >= '\uFBD3' && LA3_0 <= '\uFD3D')||(LA3_0 >= '\uFD50' && LA3_0 <= '\uFD8F')||(LA3_0 >= '\uFD92' && LA3_0 <= '\uFDC7')||(LA3_0 >= '\uFDF0' && LA3_0 <= '\uFDFC')||(LA3_0 >= '\uFE00' && LA3_0 <= '\uFE0F')||(LA3_0 >= '\uFE20' && LA3_0 <= '\uFE23')||(LA3_0 >= '\uFE33' && LA3_0 <= '\uFE34')||(LA3_0 >= '\uFE4D' && LA3_0 <= '\uFE4F')||LA3_0=='\uFE69'||(LA3_0 >= '\uFE70' && LA3_0 <= '\uFE74')||(LA3_0 >= '\uFE76' && LA3_0 <= '\uFEFC')||LA3_0=='\uFEFF'||LA3_0=='\uFF04'||(LA3_0 >= '\uFF10' && LA3_0 <= '\uFF19')||(LA3_0 >= '\uFF21' && LA3_0 <= '\uFF3A')||LA3_0=='\uFF3F'||(LA3_0 >= '\uFF41' && LA3_0 <= '\uFF5A')||(LA3_0 >= '\uFF65' && LA3_0 <= '\uFFBE')||(LA3_0 >= '\uFFC2' && LA3_0 <= '\uFFC7')||(LA3_0 >= '\uFFCA' && LA3_0 <= '\uFFCF')||(LA3_0 >= '\uFFD2' && LA3_0 <= '\uFFD7')||(LA3_0 >= '\uFFDA' && LA3_0 <= '\uFFDC')||(LA3_0 >= '\uFFE0' && LA3_0 <= '\uFFE1')||(LA3_0 >= '\uFFE5' && LA3_0 <= '\uFFE6')||(LA3_0 >= '\uFFF9' && LA3_0 <= '\uFFFB')) ) {
					alt3=1;
				}
				else if ( ((LA3_0 >= '!' && LA3_0 <= '#')||(LA3_0 >= '%' && LA3_0 <= '-')||LA3_0=='/'||(LA3_0 >= ';' && LA3_0 <= '<')||(LA3_0 >= '>' && LA3_0 <= '@')||LA3_0=='^'||LA3_0=='|'||LA3_0=='~') ) {
					alt3=2;
				}
				else if ( (LA3_0=='\\') ) {
					alt3=3;
				}
				else if ( (LA3_0=='.') ) {
					alt3=4;
				}

				switch (alt3) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:325:8: IdentifierPart
					{
					mIdentifierPart(); if (state.failed) return;

					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:325:23: MISC
					{
					mMISC(); if (state.failed) return;

					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:325:28: EscapeSequence
					{
					mEscapeSequence(); if (state.failed) return;

					}
					break;
				case 4 :
					// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:325:43: DOT
					{
					mDOT(); if (state.failed) return;

					}
					break;

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

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
289606
public function parseIdentifier(ObjectIdentifier $identifier)
    {
        $info = parent::parseIdentifier($identifier);

        $path  = $identifier->path;

        //Allow locating default classes if $path is empty.
        if(empty($path))
        {
            $info['path']    = $info['file'];
            $info['file']    = '';
            $info['package'] = '';
        }
        else
        {
            $package = array_shift($path);

            $info['path']    = StringInflector::implode($path);
            $info['package'] = ucfirst($package);
        }

        //Make an exception for 'view' and 'module' types
        if(in_array($info['package'], array('View','Module')) && !in_array('behavior', $path)) {
            $info['path'] = '';
        }

        return $info;
    }
684189
static String _dumpAsString(
                                String indent,
                                DERObject obj)
    {
        if (obj instanceof ASN1Sequence)
        {
            StringBuilder buf = new StringBuilder();
            Enumeration e = ((ASN1Sequence) obj).getObjects();
            String tab = indent + TAB;

            buf.append(indent);
            if (obj instanceof BERConstructedSequence)
            {
                buf.append("BER ConstructedSequence");
            }
            else if (obj instanceof DERConstructedSequence)
            {
                buf.append("DER ConstructedSequence");
            }
            else if (obj instanceof BERSequence)
            {
                buf.append("BER Sequence");
            }
            else if (obj instanceof DERSequence)
            {
                buf.append("DER Sequence");
            }
            else
            {
                buf.append("Sequence");
            }

            buf.append(System.getProperty("line.separator"));

            while (e.hasMoreElements())
            {
                Object o = e.nextElement();

                if (o == null || o.equals(new DERNull()))
                {
                    buf.append(tab);
                    buf.append("NULL");
                    buf.append(System.getProperty("line.separator"));
                }
                else if (o instanceof DERObject)
                {
                    buf.append(_dumpAsString(tab, (DERObject) o));
                }
                else
                {
                    buf.append(_dumpAsString(tab, ((DEREncodable) o).getDERObject()));
                }
            }
            return buf.toString();
        }
        else if (obj instanceof DERTaggedObject)
        {
            StringBuilder buf = new StringBuilder();
            String tab = indent + TAB;

            buf.append(indent);
            if (obj instanceof BERTaggedObject)
            {
                buf.append("BER Tagged [");
            }
            else
            {
                buf.append("Tagged [");
            }

            DERTaggedObject o = (DERTaggedObject) obj;

            buf.append(Integer.toString(o.getTagNo()));
            buf.append("]");

            if (!o.isExplicit())
            {
                buf.append(" IMPLICIT ");
            }

            buf.append(System.getProperty("line.separator"));

            if (o.isEmpty())
            {
                buf.append(tab);
                buf.append("EMPTY");
                buf.append(System.getProperty("line.separator"));
            }
            else
            {
                buf.append(_dumpAsString(tab, o.getObject()));
            }

            return buf.toString();
        }
        else if (obj instanceof DERConstructedSet)
        {
            StringBuilder buf = new StringBuilder();
            Enumeration e = ((ASN1Set) obj).getObjects();
            String tab = indent + TAB;

            buf.append(indent);
            buf.append("ConstructedSet");
            buf.append(System.getProperty("line.separator"));

            while (e.hasMoreElements())
            {
                Object o = e.nextElement();

                if (o == null)
                {
                    buf.append(tab);
                    buf.append("NULL");
                    buf.append(System.getProperty("line.separator"));
                }
                else if (o instanceof DERObject)
                {
                    buf.append(_dumpAsString(tab, (DERObject) o));
                }
                else
                {
                    buf.append(_dumpAsString(tab, ((DEREncodable) o).getDERObject()));
                }
            }
            return buf.toString();
        }
        else if (obj instanceof BERSet)
        {
            StringBuilder buf = new StringBuilder();
            Enumeration e = ((ASN1Set) obj).getObjects();
            String tab = indent + TAB;

            buf.append(indent);
            buf.append("BER Set");
            buf.append(System.getProperty("line.separator"));

            while (e.hasMoreElements())
            {
                Object o = e.nextElement();

                if (o == null)
                {
                    buf.append(tab);
                    buf.append("NULL");
                    buf.append(System.getProperty("line.separator"));
                }
                else if (o instanceof DERObject)
                {
                    buf.append(_dumpAsString(tab, (DERObject) o));
                }
                else
                {
                    buf.append(_dumpAsString(tab, ((DEREncodable) o).getDERObject()));
                }
            }
            return buf.toString();
        }
        else if (obj instanceof DERSet)
        {
            StringBuilder buf = new StringBuilder();
            Enumeration e = ((ASN1Set) obj).getObjects();
            String tab = indent + TAB;

            buf.append(indent);
            buf.append("DER Set");
            buf.append(System.getProperty("line.separator"));

            while (e.hasMoreElements())
            {
                Object o = e.nextElement();

                if (o == null)
                {
                    buf.append(tab);
                    buf.append("NULL");
                    buf.append(System.getProperty("line.separator"));
                }
                else if (o instanceof DERObject)
                {
                    buf.append(_dumpAsString(tab, (DERObject) o));
                }
                else
                {
                    buf.append(_dumpAsString(tab, ((DEREncodable) o).getDERObject()));
                }
            }
            return buf.toString();
        }
        else if (obj instanceof DERObjectIdentifier)
        {
            return indent + "ObjectIdentifier(" + ((DERObjectIdentifier) obj).getId() + ")" + System.getProperty("line.separator");
        }
        else if (obj instanceof DERBoolean)
        {
            return indent + "Boolean(" + ((DERBoolean) obj).isTrue() + ")" + System.getProperty("line.separator");
        }
        else if (obj instanceof DERInteger)
        {
            return indent + "Integer(" + ((DERInteger) obj).getValue() + ")" + System.getProperty("line.separator");
        }
        else if (obj instanceof BERConstructedOctetString)
        {
            return indent + "BER Constructed Octet String" + "[" + ((ASN1OctetString) obj).getOctets().length + "] " + System.getProperty("line.separator");
        }
        else if (obj instanceof DEROctetString)
        {
            return indent + "DER Octet String" + "[" + ((ASN1OctetString) obj).getOctets().length + "] " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERBitString)
        {
            return indent + "DER Bit String" + "[" + ((DERBitString) obj).getBytes().length + ", " + ((DERBitString) obj).getPadBits() + "] "
                   + System.getProperty("line.separator");
        }
        else if (obj instanceof DERIA5String)
        {
            return indent + "IA5String(" + ((DERIA5String) obj).getString() + ") " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERUTF8String)
        {
            return indent + "UTF8String(" + ((DERUTF8String) obj).getString() + ") " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERPrintableString)
        {
            return indent + "PrintableString(" + ((DERPrintableString) obj).getString() + ") " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERVisibleString)
        {
            return indent + "VisibleString(" + ((DERVisibleString) obj).getString() + ") " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERBMPString)
        {
            return indent + "BMPString(" + ((DERBMPString) obj).getString() + ") " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERT61String)
        {
            return indent + "T61String(" + ((DERT61String) obj).getString() + ") " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERUTCTime)
        {
            return indent + "UTCTime(" + ((DERUTCTime) obj).getTime() + ") " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERGeneralizedTime)
        {
            return indent + "GeneralizedTime(" + ((DERGeneralizedTime) obj).getTime() + ") " + System.getProperty("line.separator");
        }
        else if (obj instanceof DERUnknownTag)
        {
            //TODO liberty if we keep this find Hex
//            return indent + "Unknown " + Integer.toString(((DERUnknownTag)obj).getTag(), 16) + " " + new String(Hex.encode(((DERUnknownTag)obj).getData())) + System.getProperty("line.separator");
            return indent + "Unknown " + Integer.toString(((DERUnknownTag) obj).getTag(), 16) + " " + new String(((DERUnknownTag) obj).getData())
                   + System.getProperty("line.separator");
        }
        else
        {
            return indent + obj.toString() + System.getProperty("line.separator");
        }
    }
1137151
public final void interfaceBody() throws RecognitionException {
		int interfaceBody_StartIndex = input.index();

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

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:355:5: ( '{' ( interfaceBodyDeclaration )* '}' )
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:355:7: '{' ( interfaceBodyDeclaration )* '}'
			{
			match(input,121,FOLLOW_121_in_interfaceBody649); if (state.failed) return;
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:355:11: ( interfaceBodyDeclaration )*
			loop32:
			while (true) {
				int alt32=2;
				int LA32_0 = input.LA(1);
				if ( (LA32_0==ENUM||LA32_0==Identifier||(LA32_0 >= 52 && LA32_0 <= 53)||LA32_0==58||LA32_0==63||LA32_0==65||LA32_0==67||(LA32_0 >= 71 && LA32_0 <= 72)||LA32_0==77||LA32_0==83||LA32_0==85||(LA32_0 >= 92 && LA32_0 <= 94)||LA32_0==96||(LA32_0 >= 100 && LA32_0 <= 102)||(LA32_0 >= 105 && LA32_0 <= 107)||LA32_0==110||LA32_0==114||(LA32_0 >= 118 && LA32_0 <= 119)) ) {
					alt32=1;
				}

				switch (alt32) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:355:11: interfaceBodyDeclaration
					{
					pushFollow(FOLLOW_interfaceBodyDeclaration_in_interfaceBody651);
					interfaceBodyDeclaration();
					state._fsp--;
					if (state.failed) return;
					}
					break;

				default :
					break loop32;
				}
			}

			match(input,125,FOLLOW_125_in_interfaceBody654); if (state.failed) return;
			}

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

		}
	}
496052
def p_identifier(self, tree):
        '''  '''
        tree.value = tree.attr
        tree.svalue = tree.attr
781194
public final void explicitGenericInvocationSuffix() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:647:5: ( super_key superSuffix | ID arguments )
			int alt80=2;
			int LA80_0 = input.LA(1);
			if ( (LA80_0==ID) ) {
				int LA80_1 = input.LA(2);
				if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.SUPER)))) ) {
					alt80=1;
				}
				else if ( (true) ) {
					alt80=2;
				}

			}

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

			switch (alt80) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:647:7: super_key superSuffix
					{
					pushFollow(FOLLOW_super_key_in_explicitGenericInvocationSuffix3764);
					super_key();
					state._fsp--;
					if (state.failed) return;
					pushFollow(FOLLOW_superSuffix_in_explicitGenericInvocationSuffix3766);
					superSuffix();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:648:10: ID arguments
					{
					match(input,ID,FOLLOW_ID_in_explicitGenericInvocationSuffix3777); if (state.failed) return;
					pushFollow(FOLLOW_arguments_in_explicitGenericInvocationSuffix3779);
					arguments();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}
		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
204919
public final void mJavaLetter() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1379:2: ( ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' ) |{...}?~ ( '\\u0000' .. '\\u007F' | '\\uD800' .. '\\uDBFF' ) |{...}? ( '\\uD800' .. '\\uDBFF' ) ( '\\uDC00' .. '\\uDFFF' ) )
			int alt27=3;
			int LA27_0 = input.LA(1);
			if ( (LA27_0=='$'||(LA27_0 >= 'A' && LA27_0 <= 'Z')||LA27_0=='_'||(LA27_0 >= 'a' && LA27_0 <= 'z')) ) {
				alt27=1;
			}
			else if ( ((LA27_0 >= '\u0080' && LA27_0 <= '\uD7FF')||(LA27_0 >= '\uDC00' && LA27_0 <= '\uFFFF')) ) {
				alt27=2;
			}
			else if ( ((LA27_0 >= '\uD800' && LA27_0 <= '\uDBFF')) ) {
				alt27=3;
			}

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

			switch (alt27) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1379:4: ( 'a' .. 'z' | 'A' .. 'Z' | '$' | '_' )
					{
					if ( input.LA(1)=='$'||(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:1380:6: {...}?~ ( '\\u0000' .. '\\u007F' | '\\uD800' .. '\\uDBFF' )
					{
					if ( !((Character.isJavaIdentifierStart(input.LA(1)))) ) {
						throw new FailedPredicateException(input, "JavaLetter", "Character.isJavaIdentifierStart(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:1382:9: {...}? ( '\\uD800' .. '\\uDBFF' ) ( '\\uDC00' .. '\\uDFFF' )
					{
					if ( !((Character.isJavaIdentifierStart(Character.toCodePoint((char)input.LA(-1), (char)input.LA(1))))) ) {
						throw new FailedPredicateException(input, "JavaLetter", "Character.isJavaIdentifierStart(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
		}
	}