$ANTLR start "NULL_SAFE_DOT"
971709
public final void mNULL_SAFE_DOT() throws RecognitionException {
		try {
			int _type = NULL_SAFE_DOT;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:267:15: ( '!.' )
			// src/main/resources/org/drools/compiler/lang/DRL5Lexer.g:267:17: '!.'
			{
			match("!."); if (state.failed) return;

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
1019748
public final void arguments() throws RecognitionException {
		Token LEFT_PAREN26=null;
		Token RIGHT_PAREN27=null;

		try {
			// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:718:5: ( LEFT_PAREN ( expressionList )? RIGHT_PAREN )
			// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:718:7: LEFT_PAREN ( expressionList )? RIGHT_PAREN
			{
			LEFT_PAREN26=(Token)match(input,LEFT_PAREN,FOLLOW_LEFT_PAREN_in_arguments4500); if (state.failed) return;
			if ( state.backtracking==0 ) { helper.emit(LEFT_PAREN26, DroolsEditorType.SYMBOL); }
			// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:719:9: ( expressionList )?
			int alt95=2;
			int LA95_0 = input.LA(1);
			if ( (LA95_0==BOOL||(LA95_0 >= DECIMAL && LA95_0 <= DIV)||LA95_0==DOT||LA95_0==FLOAT||LA95_0==HEX||(LA95_0 >= ID && LA95_0 <= INCR)||(LA95_0 >= LEFT_PAREN && LA95_0 <= LESS)||LA95_0==MINUS||LA95_0==NEGATION||LA95_0==NULL||LA95_0==PLUS||LA95_0==QUESTION_DIV||(LA95_0 >= STAR && LA95_0 <= TIME_INTERVAL)) ) {
				alt95=1;
			}
			switch (alt95) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:719:9: expressionList
					{
					pushFollow(FOLLOW_expressionList_in_arguments4512);
					expressionList();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}

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

		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
275899
public final void literal() throws RecognitionException {
		CommonTree theliteral=null;

		try {
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:123:5: (theliteral= VT_LITERAL )
			// src/main/resources/org/drools/compiler/lang/dsl/DSLMapWalker.g:123:7: theliteral= VT_LITERAL
			{
			theliteral=(CommonTree)match(input,VT_LITERAL,FOLLOW_VT_LITERAL_in_literal403); 
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}
199999
public final void mExponent() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1338:10: ( ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+ )
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1338:12: ( 'e' | 'E' ) ( '+' | '-' )? ( '0' .. '9' )+
			{
			if ( input.LA(1)=='E'||input.LA(1)=='e' ) {
				input.consume();
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				recover(mse);
				throw mse;
			}
			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1338:22: ( '+' | '-' )?
			int alt20=2;
			int LA20_0 = input.LA(1);
			if ( (LA20_0=='+'||LA20_0=='-') ) {
				alt20=1;
			}
			switch (alt20) {
				case 1 :
					// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:
					{
					if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;

			}

			// src/main/resources/org/drools/compiler/semantics/java/parser/Java.g:1338:33: ( '0' .. '9' )+
			int cnt21=0;
			loop21:
			while (true) {
				int alt21=2;
				int LA21_0 = input.LA(1);
				if ( ((LA21_0 >= '0' && LA21_0 <= '9')) ) {
					alt21=1;
				}

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

				default :
					if ( cnt21 >= 1 ) break loop21;
					EarlyExitException eee = new EarlyExitException(21, input);
					throw eee;
				}
				cnt21++;
			}

			}

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

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

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

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

							}

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

							}

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

					}

					}
					break;

			}
		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
681918
public void mTokens() throws RecognitionException {
        // /home/victor/srec/core/src/main/antlr/srec.g:1:8: ( T__28 | T__29 | T__30 | T__31 | T__32 | T__33 | T__34 | BOOLEAN | NULL | ID | NUMBER | STRING | WS | NEWLINE | COMMENT )
        int alt12=15;
        alt12 = dfa12.predict(input);
        switch (alt12) {
            case 1 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:10: T__28
                {
                mT__28(); 

                }
                break;
            case 2 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:16: T__29
                {
                mT__29(); 

                }
                break;
            case 3 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:22: T__30
                {
                mT__30(); 

                }
                break;
            case 4 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:28: T__31
                {
                mT__31(); 

                }
                break;
            case 5 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:34: T__32
                {
                mT__32(); 

                }
                break;
            case 6 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:40: T__33
                {
                mT__33(); 

                }
                break;
            case 7 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:46: T__34
                {
                mT__34(); 

                }
                break;
            case 8 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:52: BOOLEAN
                {
                mBOOLEAN(); 

                }
                break;
            case 9 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:60: NULL
                {
                mNULL(); 

                }
                break;
            case 10 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:65: ID
                {
                mID(); 

                }
                break;
            case 11 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:68: NUMBER
                {
                mNUMBER(); 

                }
                break;
            case 12 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:75: STRING
                {
                mSTRING(); 

                }
                break;
            case 13 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:82: WS
                {
                mWS(); 

                }
                break;
            case 14 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:85: NEWLINE
                {
                mNEWLINE(); 

                }
                break;
            case 15 :
                // /home/victor/srec/core/src/main/antlr/srec.g:1:93: COMMENT
                {
                mCOMMENT(); 

                }
                break;

        }

    }
206003
public final void identifierSuffix() throws RecognitionException {
		Token LEFT_SQUARE16=null;
		Token RIGHT_SQUARE17=null;
		Token DOT18=null;
		Token LEFT_SQUARE19=null;
		Token RIGHT_SQUARE20=null;

		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:589:5: ( ( LEFT_SQUARE RIGHT_SQUARE )=> ( LEFT_SQUARE RIGHT_SQUARE )+ DOT class_key | ( ( LEFT_SQUARE )=> LEFT_SQUARE expression RIGHT_SQUARE )+ | arguments )
			int alt65=3;
			int LA65_0 = input.LA(1);
			if ( (LA65_0==LEFT_SQUARE) ) {
				int LA65_1 = input.LA(2);
				if ( (LA65_1==RIGHT_SQUARE) && (synpred33_DRL5Expressions())) {
					alt65=1;
				}
				else if ( (LA65_1==BOOL||(LA65_1 >= DECIMAL && LA65_1 <= DECR)||LA65_1==FLOAT||LA65_1==HEX||(LA65_1 >= ID && LA65_1 <= INCR)||(LA65_1 >= LEFT_PAREN && LA65_1 <= LESS)||LA65_1==MINUS||LA65_1==NEGATION||LA65_1==NULL||LA65_1==PLUS||(LA65_1 >= STAR && LA65_1 <= TIME_INTERVAL)) ) {
					alt65=2;
				}

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

			}
			else if ( (LA65_0==LEFT_PAREN) ) {
				alt65=3;
			}

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

			switch (alt65) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:589:7: ( LEFT_SQUARE RIGHT_SQUARE )=> ( LEFT_SQUARE RIGHT_SQUARE )+ DOT class_key
					{
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:589:35: ( LEFT_SQUARE RIGHT_SQUARE )+
					int cnt63=0;
					loop63:
					while (true) {
						int alt63=2;
						int LA63_0 = input.LA(1);
						if ( (LA63_0==LEFT_SQUARE) ) {
							alt63=1;
						}

						switch (alt63) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:589:36: LEFT_SQUARE RIGHT_SQUARE
							{
							LEFT_SQUARE16=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_identifierSuffix3240); if (state.failed) return;
							if ( state.backtracking==0 ) { helper.emit(LEFT_SQUARE16, DroolsEditorType.SYMBOL); }
							RIGHT_SQUARE17=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_identifierSuffix3281); if (state.failed) return;
							if ( state.backtracking==0 ) { helper.emit(RIGHT_SQUARE17, DroolsEditorType.SYMBOL); }
							}
							break;

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

					DOT18=(Token)match(input,DOT,FOLLOW_DOT_in_identifierSuffix3325); if (state.failed) return;
					if ( state.backtracking==0 ) { helper.emit(DOT18, DroolsEditorType.SYMBOL); }
					pushFollow(FOLLOW_class_key_in_identifierSuffix3329);
					class_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:592:7: ( ( LEFT_SQUARE )=> LEFT_SQUARE expression RIGHT_SQUARE )+
					{
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:592:7: ( ( LEFT_SQUARE )=> LEFT_SQUARE expression RIGHT_SQUARE )+
					int cnt64=0;
					loop64:
					while (true) {
						int alt64=2;
						int LA64_0 = input.LA(1);
						if ( (LA64_0==LEFT_SQUARE) ) {
							int LA64_36 = input.LA(2);
							if ( (synpred34_DRL5Expressions()) ) {
								alt64=1;
							}

						}

						switch (alt64) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:592:8: ( LEFT_SQUARE )=> LEFT_SQUARE expression RIGHT_SQUARE
							{
							LEFT_SQUARE19=(Token)match(input,LEFT_SQUARE,FOLLOW_LEFT_SQUARE_in_identifierSuffix3344); if (state.failed) return;
							if ( state.backtracking==0 ) { helper.emit(LEFT_SQUARE19, DroolsEditorType.SYMBOL); }
							pushFollow(FOLLOW_expression_in_identifierSuffix3374);
							expression();
							state._fsp--;
							if (state.failed) return;
							RIGHT_SQUARE20=(Token)match(input,RIGHT_SQUARE,FOLLOW_RIGHT_SQUARE_in_identifierSuffix3402); if (state.failed) return;
							if ( state.backtracking==0 ) { helper.emit(RIGHT_SQUARE20, DroolsEditorType.SYMBOL); }
							}
							break;

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

					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:595:9: arguments
					{
					pushFollow(FOLLOW_arguments_in_identifierSuffix3418);
					arguments();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}
		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
589950
public static Program compileSql(String query) {
        try {
            ANTLRStringStream in = new ANTLRStringStream(query);
            druidGLexer lexer = new druidGLexer(in);
            CommonTokenStream tokens = new CommonTokenStream(lexer);
            druidGParser parser = new druidGParser(tokens);
            Program pgm = parser.program();
            return pgm;
        } catch (RecognitionException ex) {
            System.out.println(ex);
            Logger.getLogger(DCompiler.class.getName()).log(Level.SEVERE, null, ex);
        }
        return null;
    }
1042450
public final void mEXPONENT() throws RecognitionException {
		try {
			// hql.g:871:2: ( ( 'e' ) ( '+' | '-' )? ( '0' .. '9' )+ )
			// hql.g:871:4: ( 'e' ) ( '+' | '-' )? ( '0' .. '9' )+
			{
			// hql.g:871:4: ( 'e' )
			// hql.g:871:5: 'e'
			{
			match('e'); if (state.failed) return;
			}

			// hql.g:871:10: ( '+' | '-' )?
			int alt21=2;
			int LA21_0 = input.LA(1);
			if ( (LA21_0=='+'||LA21_0=='-') ) {
				alt21=1;
			}
			switch (alt21) {
				case 1 :
					// hql.g:
					{
					if ( input.LA(1)=='+'||input.LA(1)=='-' ) {
						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;

			}

			// hql.g:871:21: ( '0' .. '9' )+
			int cnt22=0;
			loop22:
			while (true) {
				int alt22=2;
				int LA22_0 = input.LA(1);
				if ( ((LA22_0 >= '0' && LA22_0 <= '9')) ) {
					alt22=1;
				}

				switch (alt22) {
				case 1 :
					// hql.g:
					{
					if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
						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 :
					if ( cnt22 >= 1 ) break loop22;
					if (state.backtracking>0) {state.failed=true; return;}
					EarlyExitException eee = new EarlyExitException(22, input);
					throw eee;
				}
				cnt22++;
			}

			}

		}
		finally {
			// do for sure before leaving
		}
	}
1032264
public final AntlrDatatypeRuleToken ruleOpPostfix() throws RecognitionException {
        AntlrDatatypeRuleToken current = new AntlrDatatypeRuleToken();

        Token kw=null;


        	enterRule();

        try {
            // InternalSARL.g:13223:2: ( (kw= '++' | kw= '--' ) )
            // InternalSARL.g:13224:2: (kw= '++' | kw= '--' )
            {
            // InternalSARL.g:13224:2: (kw= '++' | kw= '--' )
            int alt315=2;
            int LA315_0 = input.LA(1);

            if ( (LA315_0==125) ) {
                alt315=1;
            }
            else if ( (LA315_0==126) ) {
                alt315=2;
            }
            else {
                if (state.backtracking>0) {state.failed=true; return current;}
                NoViableAltException nvae =
                    new NoViableAltException("", 315, 0, input);

                throw nvae;
            }
            switch (alt315) {
                case 1 :
                    // InternalSARL.g:13225:3: kw= '++'
                    {
                    kw=(Token)match(input,125,FOLLOW_2); if (state.failed) return current;
                    if ( state.backtracking==0 ) {

                      			current.merge(kw);
                      			newLeafNode(kw, grammarAccess.getOpPostfixAccess().getPlusSignPlusSignKeyword_0());
                      		
                    }

                    }
                    break;
                case 2 :
                    // InternalSARL.g:13231:3: kw= '--'
                    {
                    kw=(Token)match(input,126,FOLLOW_2); if (state.failed) return current;
                    if ( state.backtracking==0 ) {

                      			current.merge(kw);
                      			newLeafNode(kw, grammarAccess.getOpPostfixAccess().getHyphenMinusHyphenMinusKeyword_1());
                      		
                    }

                    }
                    break;

            }


            }

            if ( state.backtracking==0 ) {

              	leaveRule();

            }
        }

            catch (RecognitionException re) {
                recover(input,re);
                appendSkippedTokens();
            }
        finally {
        }
        return current;
    }
1136101
public final void primitiveType() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:549:5: ( boolean_key | char_key | byte_key | short_key | int_key | long_key | float_key | double_key )
			int alt57=8;
			int LA57_0 = input.LA(1);
			if ( (LA57_0==ID) && ((((helper.validateIdentifierKey(DroolsSoftKeywords.SHORT)))||((helper.validateIdentifierKey(DroolsSoftKeywords.LONG)))||((helper.validateIdentifierKey(DroolsSoftKeywords.CHAR)))||((helper.validateIdentifierKey(DroolsSoftKeywords.INT)))||((helper.validateIdentifierKey(DroolsSoftKeywords.FLOAT)))||((helper.validateIdentifierKey(DroolsSoftKeywords.BOOLEAN)))||((helper.validateIdentifierKey(DroolsSoftKeywords.DOUBLE)))||((helper.validateIdentifierKey(DroolsSoftKeywords.BYTE)))))) {
				int LA57_1 = input.LA(2);
				if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.BOOLEAN)))) ) {
					alt57=1;
				}
				else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.CHAR)))) ) {
					alt57=2;
				}
				else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.BYTE)))) ) {
					alt57=3;
				}
				else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.SHORT)))) ) {
					alt57=4;
				}
				else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.INT)))) ) {
					alt57=5;
				}
				else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.LONG)))) ) {
					alt57=6;
				}
				else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.FLOAT)))) ) {
					alt57=7;
				}
				else if ( (((helper.validateIdentifierKey(DroolsSoftKeywords.DOUBLE)))) ) {
					alt57=8;
				}

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

			}

			switch (alt57) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:549:9: boolean_key
					{
					pushFollow(FOLLOW_boolean_key_in_primitiveType2814);
					boolean_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:550:7: char_key
					{
					pushFollow(FOLLOW_char_key_in_primitiveType2822);
					char_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 3 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:551:7: byte_key
					{
					pushFollow(FOLLOW_byte_key_in_primitiveType2830);
					byte_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 4 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:552:7: short_key
					{
					pushFollow(FOLLOW_short_key_in_primitiveType2838);
					short_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 5 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:553:7: int_key
					{
					pushFollow(FOLLOW_int_key_in_primitiveType2846);
					int_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 6 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:554:7: long_key
					{
					pushFollow(FOLLOW_long_key_in_primitiveType2854);
					long_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 7 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:555:7: float_key
					{
					pushFollow(FOLLOW_float_key_in_primitiveType2862);
					float_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 8 :
					// src/main/resources/org/drools/compiler/lang/DRL6Expressions.g:556:7: double_key
					{
					pushFollow(FOLLOW_double_key_in_primitiveType2870);
					double_key();
					state._fsp--;
					if (state.failed) return;
					}
					break;

			}
		}

		catch (RecognitionException re) {
		    throw re;
		}

		finally {
			// do for sure before leaving
		}
	}
158077
public final QueryParser.nil_return nil() throws RecognitionException {
        QueryParser.nil_return retval = new QueryParser.nil_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token set86=null;

        CommonTree set86_tree=null;

        try {
            // src/riemann/Query.g:73:5: ( 'null' | 'nil' )
            // src/riemann/Query.g:
            {
            root_0 = (CommonTree)adaptor.nil();

            set86=(Token)input.LT(1);
            if ( (input.LA(1)>=29 && input.LA(1)<=30) ) {
                input.consume();
                adaptor.addChild(root_0, (CommonTree)adaptor.create(set86));
                state.errorRecovery=false;
            }
            else {
                MismatchedSetException mse = new MismatchedSetException(null,input);
                throw mse;
            }


            }

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

            retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
            adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
    	retval.tree = (CommonTree)adaptor.errorNode(input, retval.start, input.LT(-1), re);

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

			else {
				alt4=8;
			}

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

			else {
				alt4=10;
			}

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

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

		switch (alt4) {
			case 1 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:10: WS
				{
				mWS(); if (state.failed) return;

				}
				break;
			case 2 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:13: EOL
				{
				mEOL(); if (state.failed) return;

				}
				break;
			case 3 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:17: LEFT_SQUARE
				{
				mLEFT_SQUARE(); if (state.failed) return;

				}
				break;
			case 4 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:29: RIGHT_SQUARE
				{
				mRIGHT_SQUARE(); if (state.failed) return;

				}
				break;
			case 5 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:42: LEFT_CURLY
				{
				mLEFT_CURLY(); if (state.failed) return;

				}
				break;
			case 6 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:53: RIGHT_CURLY
				{
				mRIGHT_CURLY(); if (state.failed) return;

				}
				break;
			case 7 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:65: EQUALS
				{
				mEQUALS(); if (state.failed) return;

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

				}
				break;
			case 9 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:76: COLON
				{
				mCOLON(); if (state.failed) return;

				}
				break;
			case 10 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:82: COMMA
				{
				mCOMMA(); if (state.failed) return;

				}
				break;
			case 11 :
				// src/main/resources/org/drools/compiler/lang/dsl/DSLMap.g:1:88: LITERAL
				{
				mLITERAL(); if (state.failed) return;

				}
				break;

		}
	}
523671
public final void superSuffix() throws RecognitionException {
		try {
			// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:664:5: ( arguments | DOT ID ( ( LEFT_PAREN )=> arguments )? )
			int alt85=2;
			int LA85_0 = input.LA(1);
			if ( (LA85_0==LEFT_PAREN) ) {
				alt85=1;
			}
			else if ( (LA85_0==DOT) ) {
				alt85=2;
			}

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

			switch (alt85) {
				case 1 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:664:7: arguments
					{
					pushFollow(FOLLOW_arguments_in_superSuffix3996);
					arguments();
					state._fsp--;
					if (state.failed) return;
					}
					break;
				case 2 :
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:665:10: DOT ID ( ( LEFT_PAREN )=> arguments )?
					{
					match(input,DOT,FOLLOW_DOT_in_superSuffix4007); if (state.failed) return;
					match(input,ID,FOLLOW_ID_in_superSuffix4009); if (state.failed) return;
					// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:665:17: ( ( LEFT_PAREN )=> arguments )?
					int alt84=2;
					int LA84_0 = input.LA(1);
					if ( (LA84_0==LEFT_PAREN) ) {
						int LA84_1 = input.LA(2);
						if ( (synpred41_DRL5Expressions()) ) {
							alt84=1;
						}
					}
					switch (alt84) {
						case 1 :
							// src/main/resources/org/drools/compiler/lang/DRL5Expressions.g:665:18: ( LEFT_PAREN )=> arguments
							{
							pushFollow(FOLLOW_arguments_in_superSuffix4018);
							arguments();
							state._fsp--;
							if (state.failed) return;
							}
							break;

					}

					}
					break;

			}
		}

		catch (RecognitionException re) {
		    throw re;
		}

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

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

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

			}
		}
		finally {
			// do for sure before leaving
		}
	}
446514
public static void main(String[] args) {
		final String root = "..";
		final String projectName = "org.eclipse.xtext.xbase";
		final String runtimeProject = root + "/" + projectName;
		final String uiProject = System.getProperty("uiProject", root + "/../xtext-eclipse/" + projectName + ".ui");	
		final boolean backtrack = false;
		final boolean memoize = false;
		final String lineDelimiter = "\n";
		final String fileHeader = "/*******************************************************************************\n" +
			" * Copyright (c) 2010, ${year} itemis AG (http://www.itemis.eu) and others.\n" +
			" * All rights reserved. This program and the accompanying materials\n" +
			" * are made available under the terms of the Eclipse Public License v1.0\n" +
			" * which accompanies this distribution, and is available at\n" +
			" * http://www.eclipse.org/legal/epl-v10.html\n" +
			" *******************************************************************************/";
		final String xbaseGenModel = "platform:/resource/" + projectName + "/model/Xbase.genmodel";
		
		final AntlrOptions antlrOptions = new AntlrOptions();
		antlrOptions.setBacktrack(backtrack);
		antlrOptions.setMemoize(memoize);
		
		@SuppressWarnings("deprecation")
		final XtextGenerator generator = new XtextGenerator() {{
			setConfiguration(new DefaultGeneratorModule() {{
				setProject(new StandardProjectConfig() {{
					setRootPath(root);
					setBaseName(projectName);
					setCreateEclipseMetaData(true);
					BundleProjectConfig eclipsePlugin = getEclipsePlugin();
					eclipsePlugin.setEnabled(true);
					eclipsePlugin.setRoot(uiProject);
				}});
				setCode(new CodeConfig() {{
					setEncoding("ISO-8859-1");
					setLineDelimiter(lineDelimiter);
					setFileHeader(fileHeader);
					setPreferXtendStubs(true);
				}});
			}});

			addLanguage(new XtextGeneratorLanguage() {{
				String fileExtensions = "___xtype";
				
				setGrammarUri("classpath:/org/eclipse/xtext/xbase/Xtype.xtext");
				addReferencedResource(xbaseGenModel);
				setFileExtensions(fileExtensions);
				setGenerateXtendStubs(true);
				addFragment(new GrammarAccessFragment2());
				addFragment(new SerializerFragment2() {{ setGenerateSupportForDeprecatedContextEObject(true); setGenerateXtendStub(false); }} );
				addFragment(new Formatter2Fragment2());
				XtextAntlrGeneratorFragment2 antlr = new XtextAntlrGeneratorFragment2();
				ContentAssistFragment2 contentAssistFragment2 = new ContentAssistFragment2();
				contentAssistFragment2.setGenerateXtendStub(false);
				addFragment(contentAssistFragment2);
				antlr.setOptions(antlrOptions);
				addFragment(antlr);
				XtextAntlrGeneratorComparisonFragment comparison = new XtextAntlrGeneratorComparisonFragment();
				comparison.setOptions(antlrOptions);
				addFragment(comparison);
			}});
			addLanguage(new XtextGeneratorLanguage() {{
				String fileExtensions = "___xbase";
				
				setGrammarUri("classpath:/org/eclipse/xtext/xbase/Xbase.xtext");
				addReferencedResource(xbaseGenModel);
				setFileExtensions(fileExtensions);
				setGenerateXtendStubs(true);
				addFragment(new GrammarAccessFragment2());
				addFragment(new SerializerFragment2() {{ setGenerateSupportForDeprecatedContextEObject(true); setGenerateXtendStub(false); }} );
				addFragment(new ResourceFactoryFragment2());
				XtextAntlrGeneratorFragment2 antlr = new XtextAntlrGeneratorFragment2();
				antlr.setDebugGrammar(true);
				antlr.setOptions(antlrOptions);
				antlr.addAntlrParam("-Xconversiontimeout");
				antlr.addAntlrParam("10000");
				addFragment(antlr);
				ValidatorFragment2 validator = new ValidatorFragment2();
				validator.setInheritImplementation(false);
				validator.setGenerateXtendStub(false);
				validator.setGeneratePropertyPage(false);
				validator.setGenerateDeprecationValidation(false);
				addFragment(validator);
				ImportNamespacesScopingFragment2 scoping = new ImportNamespacesScopingFragment2();
				scoping.setGenerateXtendStub(false);
				addFragment(scoping);
				addFragment(new TypesGeneratorFragment2());
				XbaseGeneratorFragment2 xbase = new XbaseGeneratorFragment2();
				xbase.setGenerateXtendInferrer(false);
				xbase.setUseInferredJvmModel(false);
				xbase.setJdtTypeHierarchy(false);
				addFragment(xbase);
				addFragment(new BuilderIntegrationFragment2());
				addFragment(new Formatter2Fragment2());
				QuickfixProviderFragment2 quickfixProviderFragment2 = new QuickfixProviderFragment2();
				quickfixProviderFragment2.setGenerateXtendStub(false);
				addFragment(quickfixProviderFragment2);
				LabelProviderFragment2 label = new LabelProviderFragment2();
				label.setGenerateStub(false);
				addFragment(label);
				OutlineTreeProviderFragment2 outlineTreeProviderFragment2 = new OutlineTreeProviderFragment2();
				outlineTreeProviderFragment2.setGenerateXtendStub(false);
				addFragment(outlineTreeProviderFragment2);
				ContentAssistFragment2 contentAssistFragment2 = new ContentAssistFragment2();
				contentAssistFragment2.setGenerateXtendStub(false);
				addFragment(contentAssistFragment2);
				XtextAntlrGeneratorComparisonFragment comparison = new XtextAntlrGeneratorComparisonFragment();
				comparison.setOptions(antlrOptions);
				addFragment(comparison);
			}});
			addLanguage(new XtextGeneratorLanguage() {{
				String fileExtensions = "___xbasewithannotations";
				
				setGrammarUri("classpath:/org/eclipse/xtext/xbase/annotations/XbaseWithAnnotations.xtext");
				addReferencedResource(xbaseGenModel);
				setFileExtensions(fileExtensions);
				setGenerateXtendStubs(true);
				addFragment(new GrammarAccessFragment2());
				addFragment(new SerializerFragment2() {{ setGenerateSupportForDeprecatedContextEObject(true); setGenerateXtendStub(false); }} );
				addFragment(new ResourceFactoryFragment2());
				XtextAntlrGeneratorFragment2 antlr = new XtextAntlrGeneratorFragment2();
				antlr.setOptions(antlrOptions);
				antlr.setDebugGrammar(true);
				antlr.addAntlrParam("-Xconversiontimeout");
				antlr.addAntlrParam("10000");
				addFragment(antlr);
				ValidatorFragment2 validator = new ValidatorFragment2();
				validator.setGenerateXtendStub(false);
				validator.setGeneratePropertyPage(false);
				validator.setGenerateDeprecationValidation(false);
				addFragment(validator);
				ImportNamespacesScopingFragment2 scoping = new ImportNamespacesScopingFragment2();
				scoping.setGenerateXtendStub(false);
				addFragment(scoping);
				addFragment(new TypesGeneratorFragment2());
				XbaseGeneratorFragment2 xbase = new XbaseGeneratorFragment2();
				xbase.setGenerateXtendInferrer(false);
				xbase.setUseInferredJvmModel(false);
				xbase.setJdtTypeHierarchy(false);
				addFragment(xbase);
				addFragment(new BuilderIntegrationFragment2());
				addFragment(new Formatter2Fragment2());
				QuickfixProviderFragment2 quickfixProviderFragment2 = new QuickfixProviderFragment2();
				quickfixProviderFragment2.setGenerateXtendStub(false);
				addFragment(quickfixProviderFragment2);
				LabelProviderFragment2 label = new LabelProviderFragment2();
				label.setGenerateStub(false);
				addFragment(label);
				OutlineTreeProviderFragment2 outlineTreeProviderFragment2 = new OutlineTreeProviderFragment2();
				outlineTreeProviderFragment2.setGenerateXtendStub(false);
				addFragment(outlineTreeProviderFragment2);
				ContentAssistFragment2 contentAssistFragment2 = new ContentAssistFragment2();
				contentAssistFragment2.setGenerateXtendStub(false);
				addFragment(contentAssistFragment2);
				XtextAntlrGeneratorComparisonFragment comparison = new XtextAntlrGeneratorComparisonFragment();
				comparison.setOptions(antlrOptions);
				addFragment(comparison);
			}});
		}};
		
		generator.preInvoke();
		
		new DirectoryCleaner() {{
			setDirectory(runtimeProject + "/emf-gen");
		}}.invoke(null);
		
		new EcoreGenerator() {{
			setGenModel(xbaseGenModel);
			addSrcPath("platform:/resource/" + projectName + "/src");
			addSrcPath("platform:/resource/org.eclipse.xtext.common.types/src");
			setLineDelimiter(lineDelimiter);
		}}.invoke(null);
		
		generator.invoke(null);
		generator.postInvoke();
		new AbstractWorkflowComponent2() {
			@Override
			protected void invokeInternal(WorkflowContext ctx, ProgressMonitor monitor, Issues issues) {
				new File(runtimeProject, "plugin.properties").delete();
			}
		}.invoke(null);
		Logger.getLogger(GenerateXbase.class).info("Done."); 
	}
820546
def _typed_null_handler(c, ctx):
    """"""
    assert c == _DOT
    c, self = yield
    nxt = _NULL_STARTS
    i = 0
    length = None
    done = False
    trans = ctx.immediate_transition(self)
    while True:
        if done:
            if _ends_value(c) or (ctx.container.ion_type is IonType.SEXP and c in _OPERATORS):
                trans = ctx.event_transition(IonEvent, IonEventType.SCALAR, nxt.ion_type, None)
            else:
                _illegal_character(c, ctx, 'Illegal null type.')
        elif length is None:
            if c not in nxt:
                _illegal_character(c, ctx, 'Illegal null type.')
            nxt = nxt[c]
            if isinstance(nxt, _NullSequence):
                length = len(nxt.sequence)
        else:
            if c != nxt[i]:
                _illegal_character(c, ctx, 'Illegal null type.')
            i += 1
            done = i == length
        c, _ = yield trans