$ANTLR start "ARRAY"
971051
public final void mARRAY() throws RecognitionException {
        try {
            int _type = ARRAY;
            int _channel = DEFAULT_TOKEN_CHANNEL;
            // org/javaruntype/type/parser/Type.g:30:7: ( '[]' )
            // org/javaruntype/type/parser/Type.g:30:9: '[]'
            {
            match("[]"); 


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally {
        }
    }
1033115
function parseArray () {
  if (tokenType === TOKENTYPE.DELIMITER && token === '[') {
    getToken();

    let array = [];

    if (tokenType === TOKENTYPE.DELIMITER && token === ']') {
      // empty array
      getToken();
      return array;
    }

    // add this array to the stack
    const stackIndex = stack.length;
    stack[stackIndex] = array;

    while (true) {
      // parse item
      path[stackIndex] = array.length + '';
      array.push(parseObject());

      // parse item separator
      if (tokenType !== TOKENTYPE.DELIMITER || token !== ',') {
        break;
      }
      getToken();
    }

    if (tokenType !== TOKENTYPE.DELIMITER || token !== ']') {
      throw createSyntaxError('Comma or end of array "]" expected');
    }
    getToken();

    // remove current entry from the stack
    stack.length = stackIndex;
    path.length = stackIndex;

    return array;
  }

  return parseString();
}
1166847
public List<Object> parseArray() throws IOException {
		Type t = lexer.readNextToken();
		if (t != Type.START_ARRAY) {
			throw new IOException("Unexpected token: " + t);
		}
		
		return parseArrayInternal();
	}
755509
private ParseTree parseArrayPattern(PatternKind kind) {
    SourcePosition start = getTreeStartLocation();
    ImmutableList.Builder<ParseTree> elements = ImmutableList.builder();
    eat(TokenType.OPEN_SQUARE);
    while (peek(TokenType.COMMA) || peekArrayPatternElement()) {
      if (peek(TokenType.COMMA)) {
        SourcePosition nullStart = getTreeStartLocation();
        eat(TokenType.COMMA);
        elements.add(new NullTree(getTreeLocation(nullStart)));
      } else {
        elements.add(parsePatternAssignmentTarget(kind));

        if (peek(TokenType.COMMA)) {
          // Consume the comma separator
          eat(TokenType.COMMA);
        } else {
          // Otherwise we must be done
          break;
        }
      }
    }
    if (peek(TokenType.SPREAD)) {
      recordFeatureUsed(Feature.ARRAY_PATTERN_REST);
      elements.add(parsePatternRest(kind));
    }
    if (eat(TokenType.CLOSE_SQUARE) == null) {
      // If we get no closing bracket then return invalid tree to avoid compiler tripping
      // downstream. It's needed only for IDE mode where compiler continues processing even if
      // source has syntactic errors.
      return new MissingPrimaryExpressionTree(getTreeLocation(getTreeStartLocation()));
    }
    return new ArrayPatternTree(getTreeLocation(start), elements.build());
  }
195177
JCExpression arrayInitializer(int newpos, JCExpression t) {
        accept(LBRACE);
        ListBuffer<JCExpression> elems = new ListBuffer<JCExpression>();
        if (token.kind == COMMA) {
            nextToken();
        } else if (token.kind != RBRACE) {
            elems.append(variableInitializer());
            while (token.kind == COMMA) {
                nextToken();
                if (token.kind == RBRACE) break;
                elems.append(variableInitializer());
            }
        }
        accept(RBRACE);
        return toP(F.at(newpos).NewArray(t, List.<JCExpression>nil(), elems.toList()));
    }
545968
function(sequence, i)
	{
		if ( i == undefined ) i = 0;
		
		var output = [];
		var len = sequence.length;
		i += 1;

		// [foo, bar, ...]
		while ( i < len )
		{
			switch ( sequence.charAt(i) )
			{
				case '[':
					// nested sequence
					output.push(this.parseSequence(sequence, i));
					i = this.i;
					break;
				case '{':
					// nested mapping
					output.push(this.parseMapping(sequence, i));
					i = this.i;
					break;
				case ']':
					this.i = i;
					return output;
				case ',':
				case ' ':
					break;
				default:
					var isQuoted = this.inArray(sequence.charAt(i), ['"', "'"]);
					var value = this.parseScalar(sequence, [',', ']'], ['"', "'"], i);
					i = this.i;
					
					if ( !isQuoted && (value+'').indexOf(': ') != -1 )
					{
						// embedded mapping?
						try
						{
							value = this.parseMapping('{'+value+'}');
						}
						catch ( e )
						{
							if ( !(e instanceof YamlParseException ) ) throw e;
							// no, it's not
						}
					}

					output.push(value);

					i--;
			}

			i++;
		}

		throw new YamlParseException('Malformed inline YAML string "'+sequence+'"');
	}
1097224
final public void NonLiteral() throws ParseException {
    if (jj_2_6(5)) {
      LambdaExpressionOrInvocation();
    } else {
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case LPAREN:
        jj_consume_token(LPAREN);
        Expression();
        jj_consume_token(RPAREN);
        break;
      default:
        jj_la1[39] = jj_gen;
        if (jj_2_7(2147483647)) {
          Function();
        } else {
          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
          case IDENTIFIER:
            Identifier();
            break;
          default:
            jj_la1[40] = jj_gen;
            if (jj_2_8(3)) {
              SetData();
            } else {
              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
              case LBRACK:
                ListData();
                break;
              case START_SET_OR_MAP:
                MapData();
                break;
              default:
                jj_la1[41] = jj_gen;
                jj_consume_token(-1);
                throw new ParseException();
              }
            }
          }
        }
      }
    }
  }
992294
function parseArrayInitialiser() {
        var elements = [];

        expect('[');

        while (!match(']')) {
            if (match(',')) {
                lex();
                elements.push(null);
            } else {
                elements.push(parseExpression());

                if (!match(']')) {
                    expect(',');
                }
            }
        }

        expect(']');

        return delegate.createArrayExpression(elements);
    }
229101
public final void selector() throws RecognitionException {
		int selector_StartIndex = input.index();

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

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1284:5: ( '.' methodName ( arguments )? | '.' 'this' | '.' 'super' superSuffix | '.' 'new' ( nonWildcardTypeArguments )? innerCreator | '[' expression ']' )
			int alt189=5;
			int LA189_0 = input.LA(1);
			if ( (LA189_0==47) ) {
				switch ( input.LA(2) ) {
				case 111:
					{
					alt189=2;
					}
					break;
				case 108:
					{
					alt189=3;
					}
					break;
				case 97:
					{
					alt189=4;
					}
					break;
				case Identifier:
				case 75:
				case 90:
				case 95:
				case 103:
				case 117:
					{
					alt189=1;
					}
					break;
				default:
					if (state.backtracking>0) {state.failed=true; return;}
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 189, 1, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}
			}
			else if ( (LA189_0==59) ) {
				alt189=5;
			}

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

			switch (alt189) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1284:7: '.' methodName ( arguments )?
					{
					match(input,47,FOLLOW_47_in_selector6270); if (state.failed) return;
					pushFollow(FOLLOW_methodName_in_selector6272);
					methodName();
					state._fsp--;
					if (state.failed) return;
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1284:22: ( arguments )?
					int alt187=2;
					int LA187_0 = input.LA(1);
					if ( (LA187_0==36) ) {
						alt187=1;
					}
					switch (alt187) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1284:23: arguments
							{
							pushFollow(FOLLOW_arguments_in_selector6275);
							arguments();
							state._fsp--;
							if (state.failed) return;
							}
							break;

					}

					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1285:9: '.' 'this'
					{
					match(input,47,FOLLOW_47_in_selector6287); if (state.failed) return;
					match(input,111,FOLLOW_111_in_selector6289); if (state.failed) return;
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1286:9: '.' 'super' superSuffix
					{
					match(input,47,FOLLOW_47_in_selector6299); if (state.failed) return;
					match(input,108,FOLLOW_108_in_selector6301); if (state.failed) return;
					pushFollow(FOLLOW_superSuffix_in_selector6303);
					superSuffix();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 4 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1287:9: '.' 'new' ( nonWildcardTypeArguments )? innerCreator
					{
					match(input,47,FOLLOW_47_in_selector6313); if (state.failed) return;
					match(input,97,FOLLOW_97_in_selector6315); if (state.failed) return;
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1287:19: ( nonWildcardTypeArguments )?
					int alt188=2;
					int LA188_0 = input.LA(1);
					if ( (LA188_0==53) ) {
						alt188=1;
					}
					switch (alt188) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1287:20: nonWildcardTypeArguments
							{
							pushFollow(FOLLOW_nonWildcardTypeArguments_in_selector6318);
							nonWildcardTypeArguments();
							state._fsp--;
							if (state.failed) return;
							}
							break;

					}

					pushFollow(FOLLOW_innerCreator_in_selector6322);
					innerCreator();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 5 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1288:9: '[' expression ']'
					{
					match(input,59,FOLLOW_59_in_selector6332); if (state.failed) return;
					pushFollow(FOLLOW_expression_in_selector6334);
					expression();
					state._fsp--;
					if (state.failed) return;
					match(input,60,FOLLOW_60_in_selector6336); 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, 138, selector_StartIndex); }

		}
	}
1050751
function parseArray(array) {
  const templates = array.map(parse);
  const templateParameters = templates.reduce(
    (parameters, template) => parameters.concat(template.parameters),
    []
  );
  const templateFn = context => templates.map(template => template(context));

  return Template(templateFn, templateParameters);
}
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
		}
	}
84191
function parseArrayInitialiser() {
  var elements = [];

  index = lookahead.start;
  expect('[');

  while (!match(']')) {
    if (match(',')) {
      lex();
      elements.push(null);
    } else {
      elements.push(parseConditionalExpression());

      if (!match(']')) {
        expect(',');
      }
    }
  }

  lex();

  return finishArrayExpression(elements);
}
552803
public final void forInit() throws RecognitionException {
		int forInit_StartIndex = input.index();

		ParserRuleReturnScope variableModifier12 =null;
		ParserRuleReturnScope type13 =null;

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

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1056:5: ( ( variableModifier )* type variableDeclarators | expressionList )
			int alt137=2;
			switch ( input.LA(1) ) {
			case 58:
			case 83:
				{
				alt137=1;
				}
				break;
			case Identifier:
				{
				switch ( input.LA(2) ) {
				case 53:
					{
					int LA137_26 = input.LA(3);
					if ( (synpred198_Java()) ) {
						alt137=1;
					}
					else if ( (true) ) {
						alt137=2;
					}

					}
					break;
				case 47:
					{
					int LA137_27 = input.LA(3);
					if ( (synpred198_Java()) ) {
						alt137=1;
					}
					else if ( (true) ) {
						alt137=2;
					}

					}
					break;
				case 59:
					{
					int LA137_28 = input.LA(3);
					if ( (synpred198_Java()) ) {
						alt137=1;
					}
					else if ( (true) ) {
						alt137=2;
					}

					}
					break;
				case Identifier:
					{
					alt137=1;
					}
					break;
				case EOF:
				case 30:
				case 31:
				case 32:
				case 33:
				case 34:
				case 35:
				case 36:
				case 38:
				case 39:
				case 40:
				case 41:
				case 42:
				case 43:
				case 44:
				case 45:
				case 46:
				case 49:
				case 50:
				case 52:
				case 54:
				case 55:
				case 56:
				case 57:
				case 61:
				case 62:
				case 91:
				case 122:
				case 123:
				case 124:
					{
					alt137=2;
					}
					break;
				default:
					if (state.backtracking>0) {state.failed=true; return;}
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 137, 3, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}
				}
				break;
			case 65:
			case 67:
			case 71:
			case 77:
			case 85:
			case 92:
			case 94:
			case 105:
				{
				switch ( input.LA(2) ) {
				case 59:
					{
					int LA137_55 = input.LA(3);
					if ( (synpred198_Java()) ) {
						alt137=1;
					}
					else if ( (true) ) {
						alt137=2;
					}

					}
					break;
				case Identifier:
					{
					alt137=1;
					}
					break;
				case 47:
					{
					alt137=2;
					}
					break;
				default:
					if (state.backtracking>0) {state.failed=true; return;}
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 137, 4, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}
				}
				break;
			case CharacterLiteral:
			case DecimalLiteral:
			case FloatingPointLiteral:
			case HexLiteral:
			case OctalLiteral:
			case StringLiteral:
			case 29:
			case 36:
			case 40:
			case 41:
			case 44:
			case 45:
			case 53:
			case 70:
			case 79:
			case 80:
			case 82:
			case 97:
			case 98:
			case 108:
			case 111:
			case 115:
			case 118:
			case 126:
				{
				alt137=2;
				}
				break;
			default:
				if (state.backtracking>0) {state.failed=true; return;}
				NoViableAltException nvae =
					new NoViableAltException("", 137, 0, input);
				throw nvae;
			}
			switch (alt137) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1056:7: ( variableModifier )* type variableDeclarators
					{
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1056:7: ( variableModifier )*
					loop136:
					while (true) {
						int alt136=2;
						int LA136_0 = input.LA(1);
						if ( (LA136_0==58||LA136_0==83) ) {
							alt136=1;
						}

						switch (alt136) {
						case 1 :
							// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1056:9: variableModifier
							{
							pushFollow(FOLLOW_variableModifier_in_forInit4596);
							variableModifier12=variableModifier();
							state._fsp--;
							if (state.failed) return;
							if ( state.backtracking==0 ) {
							                VarDecl_stack.peek().descr.updateStart( ((CommonToken)(variableModifier12!=null?(variableModifier12.start):null)).getStartIndex() - 1 );
							                VarDecl_stack.peek().descr.addModifier( (variableModifier12!=null?input.toString(variableModifier12.start,variableModifier12.stop):null) );
							            }
							}
							break;

						default :
							break loop136;
						}
					}

					pushFollow(FOLLOW_type_in_forInit4631);
					type13=type();
					state._fsp--;
					if (state.failed) return;
					if ( state.backtracking==0 ) {
					            VarDecl_stack.peek().descr.updateStart( ((CommonToken)(type13!=null?(type13.start):null)).getStartIndex() - 1 );
					            VarDecl_stack.peek().descr.setType( (type13!=null?input.toString(type13.start,type13.stop):null) );
					            VarDecl_stack.peek().descr.setEnd( ((CommonToken)(type13!=null?(type13.stop):null)).getStopIndex() );
					        }
					pushFollow(FOLLOW_variableDeclarators_in_forInit4651);
					variableDeclarators();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1069:7: expressionList
					{
					pushFollow(FOLLOW_expressionList_in_forInit4659);
					expressionList();
					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, 101, forInit_StartIndex); }

		}
	}
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
		}
	}
502181
def tag(tokens)
      !tokens.is_a?(Array) && !tokens.is_a?(String) &&
        raise(ArgumentError, 'tokens must be an instance of String or Array')

      j_instance.tag(tokens.to_java(:String))
    end
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
		}
	}
50630
public final void arguments() throws RecognitionException {
		Token LEFT_PAREN27=null;
		Token RIGHT_PAREN28=null;

		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:673:5: ( LEFT_PAREN ( expressionList )? RIGHT_PAREN )
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:673:7: LEFT_PAREN ( expressionList )? RIGHT_PAREN
			{
			LEFT_PAREN27=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_arguments4069); if (state.failed) return;
			if ( state.backtracking==0 ) { helper.emit(LEFT_PAREN27, DroolsEditorType.SYMBOL); }
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:674:9: ( expressionList )?
			int alt87=2;
			int LA87_0 = input.LA(1);
			if ( (LA87_0==BOOL||(LA87_0 >= DECIMAL && LA87_0 <= DECR)||LA87_0==FLOAT||LA87_0==HEX||(LA87_0 >= ID && LA87_0 <= INCR)||(LA87_0 >= LEFT_PAREN && LA87_0 <= LESS)||LA87_0==MINUS||LA87_0==NEGATION||LA87_0==NULL||LA87_0==PLUS||(LA87_0 >= STAR && LA87_0 <= TIME_INTERVAL)) ) {
				alt87=1;
			}
			switch (alt87) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:674:9: expressionList
					{
					pushFollow(FOLLOW_expressionList_in_arguments4081);
					expressionList();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}

			RIGHT_PAREN28=(Token)match(input,RIGHT_PAREN,FOLLOW_RIGHT_PAREN_in_arguments4092); if (state.failed) return;
			if ( state.backtracking==0 ) { helper.emit(RIGHT_PAREN28, DroolsEditorType.SYMBOL); }
			}

		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}