All Downloads are FREE. Search and download functionalities are using the official Maven repository.

liqp.LiquidLexer Maven / Gradle / Ivy

// $ANTLR 3.5.2 liqp/Liquid.g 2016-01-23 17:51:32

  package liqp.parser;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class LiquidLexer extends Lexer {
	public static final int EOF=-1;
	public static final int ASSIGNMENT=4;
	public static final int ATTRIBUTES=5;
	public static final int And=6;
	public static final int Assign=7;
	public static final int BLOCK=8;
	public static final int Break=9;
	public static final int CAPTURE=10;
	public static final int CASE=11;
	public static final int CBr=12;
	public static final int COMMENT=13;
	public static final int CPar=14;
	public static final int CUSTOM_TAG=15;
	public static final int CUSTOM_TAG_BLOCK=16;
	public static final int CYCLE=17;
	public static final int CaptureEnd=18;
	public static final int CaptureStart=19;
	public static final int CaseEnd=20;
	public static final int CaseStart=21;
	public static final int Col=22;
	public static final int Comma=23;
	public static final int CommentEnd=24;
	public static final int CommentStart=25;
	public static final int Contains=26;
	public static final int Continue=27;
	public static final int Cycle=28;
	public static final int DStr=29;
	public static final int Digit=30;
	public static final int Dot=31;
	public static final int DotDot=32;
	public static final int DoubleNum=33;
	public static final int ELSE=34;
	public static final int ELSIF=35;
	public static final int Else=36;
	public static final int Elsif=37;
	public static final int Empty=38;
	public static final int EndId=39;
	public static final int Eq=40;
	public static final int EqSign=41;
	public static final int FILTER=42;
	public static final int FILTERS=43;
	public static final int FOR_ARRAY=44;
	public static final int FOR_BLOCK=45;
	public static final int FOR_RANGE=46;
	public static final int False=47;
	public static final int ForEnd=48;
	public static final int ForStart=49;
	public static final int GROUP=50;
	public static final int Gt=51;
	public static final int GtEq=52;
	public static final int HASH=53;
	public static final int IF=54;
	public static final int INCLUDE=55;
	public static final int INDEX=56;
	public static final int Id=57;
	public static final int IfEnd=58;
	public static final int IfStart=59;
	public static final int In=60;
	public static final int Include=61;
	public static final int LOOKUP=62;
	public static final int Letter=63;
	public static final int LongNum=64;
	public static final int Lt=65;
	public static final int LtEq=66;
	public static final int Minus=67;
	public static final int NEq=68;
	public static final int NO_SPACE=69;
	public static final int Nil=70;
	public static final int NoSpace=71;
	public static final int OBr=72;
	public static final int OPar=73;
	public static final int OUTPUT=74;
	public static final int Or=75;
	public static final int Other=76;
	public static final int OutEnd=77;
	public static final int OutStart=78;
	public static final int PARAMS=79;
	public static final int PLAIN=80;
	public static final int Pipe=81;
	public static final int QMark=82;
	public static final int RAW=83;
	public static final int RawEnd=84;
	public static final int RawStart=85;
	public static final int SStr=86;
	public static final int Str=87;
	public static final int TABLE=88;
	public static final int TableEnd=89;
	public static final int TableStart=90;
	public static final int TagEnd=91;
	public static final int TagStart=92;
	public static final int True=93;
	public static final int UNLESS=94;
	public static final int UnlessEnd=95;
	public static final int UnlessStart=96;
	public static final int WHEN=97;
	public static final int WITH=98;
	public static final int WS=99;
	public static final int When=100;
	public static final int With=101;

	  private boolean inTag = false;
	  private boolean inRaw = false;

	  private boolean openRawEndTagAhead() {

	    if(!openTagAhead()) {
	      return false;
	    }

	    int indexLA = 3;

	    while(Character.isSpaceChar(input.LA(indexLA))) {
	      indexLA++;
	    }

	    return input.LA(indexLA) == 'e' &&
	           input.LA(indexLA + 1) == 'n' &&
	           input.LA(indexLA + 2) == 'd' &&
	           input.LA(indexLA + 3) == 'r' &&
	           input.LA(indexLA + 4) == 'a' &&
	           input.LA(indexLA + 5) == 'w';
	  }

	  private boolean openTagAhead() {
	    return input.LA(1) == '{' && (input.LA(2) == '{' || input.LA(2) == '\u0025');
	  }
	  
	  @Override
	  public void reportError(RecognitionException e) {
	    throw new RuntimeException(e); 
	  }

	  private String strip(String text, boolean singleQuoted) {
	    return text.substring(1, text.length() - 1);
	  }


	// delegates
	// delegators
	public Lexer[] getDelegates() {
		return new Lexer[] {};
	}

	public LiquidLexer() {} 
	public LiquidLexer(CharStream input) {
		this(input, new RecognizerSharedState());
	}
	public LiquidLexer(CharStream input, RecognizerSharedState state) {
		super(input,state);
	}
	@Override public String getGrammarFileName() { return "liqp/Liquid.g"; }

	// $ANTLR start "OutStart"
	public final void mOutStart() throws RecognitionException {
		try {
			int _type = OutStart;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:372:10: ( '{{' )
			// liqp/Liquid.g:372:12: '{{'
			{
			match("{{"); 

			inTag=true;
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "OutStart"

	// $ANTLR start "OutEnd"
	public final void mOutEnd() throws RecognitionException {
		try {
			int _type = OutEnd;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:373:10: ( '}}' )
			// liqp/Liquid.g:373:12: '}}'
			{
			match("}}"); 

			inTag=false;
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "OutEnd"

	// $ANTLR start "TagStart"
	public final void mTagStart() throws RecognitionException {
		try {
			int _type = TagStart;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:374:10: ( '{%' )
			// liqp/Liquid.g:374:12: '{%'
			{
			match("{%"); 

			inTag=true;
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "TagStart"

	// $ANTLR start "TagEnd"
	public final void mTagEnd() throws RecognitionException {
		try {
			int _type = TagEnd;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:375:10: ( '%}' )
			// liqp/Liquid.g:375:12: '%}'
			{
			match("%}"); 

			inTag=false;
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "TagEnd"

	// $ANTLR start "Str"
	public final void mStr() throws RecognitionException {
		try {
			int _type = Str;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:377:5: ({...}? => ( SStr | DStr ) )
			// liqp/Liquid.g:377:7: {...}? => ( SStr | DStr )
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Str", "inTag");
			}
			// liqp/Liquid.g:377:18: ( SStr | DStr )
			int alt1=2;
			int LA1_0 = input.LA(1);
			if ( (LA1_0=='\'') ) {
				alt1=1;
			}
			else if ( (LA1_0=='\"') ) {
				alt1=2;
			}

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

			switch (alt1) {
				case 1 :
					// liqp/Liquid.g:377:19: SStr
					{
					mSStr(); 

					}
					break;
				case 2 :
					// liqp/Liquid.g:377:26: DStr
					{
					mDStr(); 

					}
					break;

			}

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Str"

	// $ANTLR start "DotDot"
	public final void mDotDot() throws RecognitionException {
		try {
			int _type = DotDot;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:379:11: ({...}? => '..' )
			// liqp/Liquid.g:379:13: {...}? => '..'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "DotDot", "inTag");
			}
			match(".."); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "DotDot"

	// $ANTLR start "Dot"
	public final void mDot() throws RecognitionException {
		try {
			int _type = Dot;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:380:11: ({...}? => '.' )
			// liqp/Liquid.g:380:13: {...}? => '.'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Dot", "inTag");
			}
			match('.'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Dot"

	// $ANTLR start "NEq"
	public final void mNEq() throws RecognitionException {
		try {
			int _type = NEq;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:381:11: ({...}? => '!=' | '<>' )
			int alt2=2;
			int LA2_0 = input.LA(1);
			if ( (LA2_0=='!') && ((inTag))) {
				alt2=1;
			}
			else if ( (LA2_0=='<') ) {
				alt2=2;
			}

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

			switch (alt2) {
				case 1 :
					// liqp/Liquid.g:381:13: {...}? => '!='
					{
					if ( !((inTag)) ) {
						throw new FailedPredicateException(input, "NEq", "inTag");
					}
					match("!="); 

					}
					break;
				case 2 :
					// liqp/Liquid.g:381:31: '<>'
					{
					match("<>"); 

					}
					break;

			}
			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "NEq"

	// $ANTLR start "Eq"
	public final void mEq() throws RecognitionException {
		try {
			int _type = Eq;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:382:11: ({...}? => '==' )
			// liqp/Liquid.g:382:13: {...}? => '=='
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Eq", "inTag");
			}
			match("=="); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Eq"

	// $ANTLR start "EqSign"
	public final void mEqSign() throws RecognitionException {
		try {
			int _type = EqSign;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:383:11: ({...}? => '=' )
			// liqp/Liquid.g:383:13: {...}? => '='
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "EqSign", "inTag");
			}
			match('='); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "EqSign"

	// $ANTLR start "GtEq"
	public final void mGtEq() throws RecognitionException {
		try {
			int _type = GtEq;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:384:11: ({...}? => '>=' )
			// liqp/Liquid.g:384:13: {...}? => '>='
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "GtEq", "inTag");
			}
			match(">="); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "GtEq"

	// $ANTLR start "Gt"
	public final void mGt() throws RecognitionException {
		try {
			int _type = Gt;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:385:11: ({...}? => '>' )
			// liqp/Liquid.g:385:13: {...}? => '>'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Gt", "inTag");
			}
			match('>'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Gt"

	// $ANTLR start "LtEq"
	public final void mLtEq() throws RecognitionException {
		try {
			int _type = LtEq;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:386:11: ({...}? => '<=' )
			// liqp/Liquid.g:386:13: {...}? => '<='
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "LtEq", "inTag");
			}
			match("<="); 

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "LtEq"

	// $ANTLR start "Lt"
	public final void mLt() throws RecognitionException {
		try {
			int _type = Lt;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:387:11: ({...}? => '<' )
			// liqp/Liquid.g:387:13: {...}? => '<'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Lt", "inTag");
			}
			match('<'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Lt"

	// $ANTLR start "Minus"
	public final void mMinus() throws RecognitionException {
		try {
			int _type = Minus;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:388:11: ({...}? => '-' )
			// liqp/Liquid.g:388:13: {...}? => '-'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Minus", "inTag");
			}
			match('-'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Minus"

	// $ANTLR start "Pipe"
	public final void mPipe() throws RecognitionException {
		try {
			int _type = Pipe;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:389:11: ({...}? => '|' )
			// liqp/Liquid.g:389:13: {...}? => '|'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Pipe", "inTag");
			}
			match('|'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Pipe"

	// $ANTLR start "Col"
	public final void mCol() throws RecognitionException {
		try {
			int _type = Col;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:390:11: ({...}? => ':' )
			// liqp/Liquid.g:390:13: {...}? => ':'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Col", "inTag");
			}
			match(':'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Col"

	// $ANTLR start "Comma"
	public final void mComma() throws RecognitionException {
		try {
			int _type = Comma;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:391:11: ({...}? => ',' )
			// liqp/Liquid.g:391:13: {...}? => ','
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Comma", "inTag");
			}
			match(','); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Comma"

	// $ANTLR start "OPar"
	public final void mOPar() throws RecognitionException {
		try {
			int _type = OPar;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:392:11: ({...}? => '(' )
			// liqp/Liquid.g:392:13: {...}? => '('
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "OPar", "inTag");
			}
			match('('); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "OPar"

	// $ANTLR start "CPar"
	public final void mCPar() throws RecognitionException {
		try {
			int _type = CPar;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:393:11: ({...}? => ')' )
			// liqp/Liquid.g:393:13: {...}? => ')'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "CPar", "inTag");
			}
			match(')'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "CPar"

	// $ANTLR start "OBr"
	public final void mOBr() throws RecognitionException {
		try {
			int _type = OBr;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:394:11: ({...}? => '[' )
			// liqp/Liquid.g:394:13: {...}? => '['
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "OBr", "inTag");
			}
			match('['); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "OBr"

	// $ANTLR start "CBr"
	public final void mCBr() throws RecognitionException {
		try {
			int _type = CBr;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:395:11: ({...}? => ']' )
			// liqp/Liquid.g:395:13: {...}? => ']'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "CBr", "inTag");
			}
			match(']'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "CBr"

	// $ANTLR start "QMark"
	public final void mQMark() throws RecognitionException {
		try {
			int _type = QMark;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:396:11: ({...}? => '?' )
			// liqp/Liquid.g:396:13: {...}? => '?'
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "QMark", "inTag");
			}
			match('?'); 
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "QMark"

	// $ANTLR start "DoubleNum"
	public final void mDoubleNum() throws RecognitionException {
		try {
			int _type = DoubleNum;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:398:11: ({...}? => ( '-' )? ( Digit )+ ({...}? => '.' ( Digit )* |) )
			// liqp/Liquid.g:398:13: {...}? => ( '-' )? ( Digit )+ ({...}? => '.' ( Digit )* |)
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "DoubleNum", "inTag");
			}
			// liqp/Liquid.g:398:24: ( '-' )?
			int alt3=2;
			int LA3_0 = input.LA(1);
			if ( (LA3_0=='-') ) {
				alt3=1;
			}
			switch (alt3) {
				case 1 :
					// liqp/Liquid.g:398:24: '-'
					{
					match('-'); 
					}
					break;

			}

			// liqp/Liquid.g:398:29: ( Digit )+
			int cnt4=0;
			loop4:
			while (true) {
				int alt4=2;
				int LA4_0 = input.LA(1);
				if ( ((LA4_0 >= '0' && LA4_0 <= '9')) ) {
					alt4=1;
				}

				switch (alt4) {
				case 1 :
					// liqp/Liquid.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 ( cnt4 >= 1 ) break loop4;
					EarlyExitException eee = new EarlyExitException(4, input);
					throw eee;
				}
				cnt4++;
			}

			// liqp/Liquid.g:398:36: ({...}? => '.' ( Digit )* |)
			int alt6=2;
			int LA6_0 = input.LA(1);
			if ( (LA6_0=='.') && ((input.LA(1) == '.' && input.LA(2) != '.'))) {
				alt6=1;
			}

			switch (alt6) {
				case 1 :
					// liqp/Liquid.g:398:38: {...}? => '.' ( Digit )*
					{
					if ( !((input.LA(1) == '.' && input.LA(2) != '.')) ) {
						throw new FailedPredicateException(input, "DoubleNum", "input.LA(1) == '.' && input.LA(2) != '.'");
					}
					match('.'); 
					// liqp/Liquid.g:398:88: ( Digit )*
					loop5:
					while (true) {
						int alt5=2;
						int LA5_0 = input.LA(1);
						if ( ((LA5_0 >= '0' && LA5_0 <= '9')) ) {
							alt5=1;
						}

						switch (alt5) {
						case 1 :
							// liqp/Liquid.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 :
							break loop5;
						}
					}

					}
					break;
				case 2 :
					// liqp/Liquid.g:399:38: 
					{
					_type = LongNum;
					}
					break;

			}

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "DoubleNum"

	// $ANTLR start "LongNum"
	public final void mLongNum() throws RecognitionException {
		try {
			int _type = LongNum;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:401:11: ({...}? => ( '-' )? ( Digit )+ )
			// liqp/Liquid.g:401:13: {...}? => ( '-' )? ( Digit )+
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "LongNum", "inTag");
			}
			// liqp/Liquid.g:401:24: ( '-' )?
			int alt7=2;
			int LA7_0 = input.LA(1);
			if ( (LA7_0=='-') ) {
				alt7=1;
			}
			switch (alt7) {
				case 1 :
					// liqp/Liquid.g:401:24: '-'
					{
					match('-'); 
					}
					break;

			}

			// liqp/Liquid.g:401:29: ( Digit )+
			int cnt8=0;
			loop8:
			while (true) {
				int alt8=2;
				int LA8_0 = input.LA(1);
				if ( ((LA8_0 >= '0' && LA8_0 <= '9')) ) {
					alt8=1;
				}

				switch (alt8) {
				case 1 :
					// liqp/Liquid.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 ( cnt8 >= 1 ) break loop8;
					EarlyExitException eee = new EarlyExitException(8, input);
					throw eee;
				}
				cnt8++;
			}

			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "LongNum"

	// $ANTLR start "WS"
	public final void mWS() throws RecognitionException {
		try {
			int _type = WS;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:402:11: ({...}? => ( ' ' | '\\t' | '\\r' | '\\n' )+ )
			// liqp/Liquid.g:402:13: {...}? => ( ' ' | '\\t' | '\\r' | '\\n' )+
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "WS", "inTag");
			}
			// liqp/Liquid.g:402:24: ( ' ' | '\\t' | '\\r' | '\\n' )+
			int cnt9=0;
			loop9:
			while (true) {
				int alt9=2;
				int LA9_0 = input.LA(1);
				if ( ((LA9_0 >= '\t' && LA9_0 <= '\n')||LA9_0=='\r'||LA9_0==' ') ) {
					alt9=1;
				}

				switch (alt9) {
				case 1 :
					// liqp/Liquid.g:
					{
					if ( (input.LA(1) >= '\t' && input.LA(1) <= '\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;

				default :
					if ( cnt9 >= 1 ) break loop9;
					EarlyExitException eee = new EarlyExitException(9, input);
					throw eee;
				}
				cnt9++;
			}

			_channel=HIDDEN;
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "WS"

	// $ANTLR start "Id"
	public final void mId() throws RecognitionException {
		try {
			int _type = Id;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:405:2: ({...}? => ( Letter | '_' ) ( Letter | '_' | '-' | Digit )* )
			// liqp/Liquid.g:405:4: {...}? => ( Letter | '_' ) ( Letter | '_' | '-' | Digit )*
			{
			if ( !((inTag)) ) {
				throw new FailedPredicateException(input, "Id", "inTag");
			}
			if ( (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;
			}
			// liqp/Liquid.g:405:30: ( Letter | '_' | '-' | Digit )*
			loop10:
			while (true) {
				int alt10=2;
				int LA10_0 = input.LA(1);
				if ( (LA10_0=='-'||(LA10_0 >= '0' && LA10_0 <= '9')||(LA10_0 >= 'A' && LA10_0 <= 'Z')||LA10_0=='_'||(LA10_0 >= 'a' && LA10_0 <= 'z')) ) {
					alt10=1;
				}

				switch (alt10) {
				case 1 :
					// liqp/Liquid.g:
					{
					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;

				default :
					break loop10;
				}
			}


			     if(getText().equals("capture"))           _type = CaptureStart;
			     else if(getText().equals("endcapture"))   _type = CaptureEnd;
			     else if(getText().equals("comment"))      _type = CommentStart;
			     else if(getText().equals("endcomment"))   _type = CommentEnd;
			     else if(getText().equals("raw"))        { _type = RawStart; inRaw = true; }
			     else if(getText().equals("endraw"))     { _type = RawEnd; inRaw = false; }
			     else if(getText().equals("if"))           _type = IfStart;
			     else if(getText().equals("elsif"))        _type = Elsif;
			     else if(getText().equals("endif"))        _type = IfEnd;
			     else if(getText().equals("unless"))       _type = UnlessStart;
			     else if(getText().equals("endunless"))    _type = UnlessEnd;
			     else if(getText().equals("else"))         _type = Else;
			     else if(getText().equals("contains"))     _type = Contains;
			     else if(getText().equals("case"))         _type = CaseStart;
			     else if(getText().equals("endcase"))      _type = CaseEnd;
			     else if(getText().equals("when"))         _type = When;
			     else if(getText().equals("cycle"))        _type = Cycle;
			     else if(getText().equals("for"))          _type = ForStart;
			     else if(getText().equals("endfor"))       _type = ForEnd;
			     else if(getText().equals("in"))           _type = In;
			     else if(getText().equals("and"))          _type = And;
			     else if(getText().equals("or"))           _type = Or;
			     else if(getText().equals("tablerow"))     _type = TableStart;
			     else if(getText().equals("endtablerow"))  _type = TableEnd;
			     else if(getText().equals("assign"))       _type = Assign;
			     else if(getText().equals("true"))         _type = True;
			     else if(getText().equals("false"))        _type = False;
			     else if(getText().equals("nil"))          _type = Nil;
			     else if(getText().equals("null"))         _type = Nil;
			     else if(getText().equals("include"))      _type = Include;
			     else if(getText().equals("with"))         _type = With;
			     else if(getText().startsWith("end"))      _type = EndId;
			     else if(getText().equals("break"))        _type = Break;
			     else if(getText().startsWith("continue")) _type = Continue;
			     else if(getText().startsWith("empty"))    _type = Empty;
			   
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Id"

	// $ANTLR start "Other"
	public final void mOther() throws RecognitionException {
		try {
			int _type = Other;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:446:2: ( ({...}? => . )+ | ({...}? => . )+ )
			int alt13=2;
			int LA13_0 = input.LA(1);
			if ( ((LA13_0 >= '\u0000' && LA13_0 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {
				int LA13_1 = input.LA(2);
				if ( ((!inTag && !openTagAhead())) ) {
					alt13=1;
				}
				else if ( ((!inTag && inRaw && !openRawEndTagAhead())) ) {
					alt13=2;
				}

				else {
					int nvaeMark = input.mark();
					try {
						input.consume();
						NoViableAltException nvae =
							new NoViableAltException("", 13, 1, input);
						throw nvae;
					} finally {
						input.rewind(nvaeMark);
					}
				}

			}

			switch (alt13) {
				case 1 :
					// liqp/Liquid.g:446:4: ({...}? => . )+
					{
					// liqp/Liquid.g:446:4: ({...}? => . )+
					int cnt11=0;
					loop11:
					while (true) {
						int alt11=2;
						int LA11_0 = input.LA(1);
						if ( ((LA11_0 >= '\u0000' && LA11_0 <= '\uFFFF')) && ((!inTag && !openTagAhead()))) {
							alt11=1;
						}

						switch (alt11) {
						case 1 :
							// liqp/Liquid.g:446:5: {...}? => .
							{
							if ( !((!inTag && !openTagAhead())) ) {
								throw new FailedPredicateException(input, "Other", "!inTag && !openTagAhead()");
							}
							matchAny(); 
							}
							break;

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

					}
					break;
				case 2 :
					// liqp/Liquid.g:447:4: ({...}? => . )+
					{
					// liqp/Liquid.g:447:4: ({...}? => . )+
					int cnt12=0;
					loop12:
					while (true) {
						int alt12=2;
						int LA12_0 = input.LA(1);
						if ( ((LA12_0 >= '\u0000' && LA12_0 <= '\uFFFF')) && ((!inTag && inRaw && !openRawEndTagAhead()))) {
							alt12=1;
						}

						switch (alt12) {
						case 1 :
							// liqp/Liquid.g:447:5: {...}? => .
							{
							if ( !((!inTag && inRaw && !openRawEndTagAhead())) ) {
								throw new FailedPredicateException(input, "Other", "!inTag && inRaw && !openRawEndTagAhead()");
							}
							matchAny(); 
							}
							break;

						default :
							if ( cnt12 >= 1 ) break loop12;
							EarlyExitException eee = new EarlyExitException(12, input);
							throw eee;
						}
						cnt12++;
					}

					}
					break;

			}
			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Other"

	// $ANTLR start "NoSpace"
	public final void mNoSpace() throws RecognitionException {
		try {
			int _type = NoSpace;
			int _channel = DEFAULT_TOKEN_CHANNEL;
			// liqp/Liquid.g:451:2: (~ ( ' ' | '\\t' | '\\r' | '\\n' ) )
			// liqp/Liquid.g:
			{
			if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '\b')||(input.LA(1) >= '\u000B' && input.LA(1) <= '\f')||(input.LA(1) >= '\u000E' && input.LA(1) <= '\u001F')||(input.LA(1) >= '!' && input.LA(1) <= '\uFFFF') ) {
				input.consume();
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				recover(mse);
				throw mse;
			}
			}

			state.type = _type;
			state.channel = _channel;
		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "NoSpace"

	// $ANTLR start "Letter"
	public final void mLetter() throws RecognitionException {
		try {
			// liqp/Liquid.g:455:17: ( 'a' .. 'z' | 'A' .. 'Z' )
			// liqp/Liquid.g:
			{
			if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z')||(input.LA(1) >= 'a' && input.LA(1) <= 'z') ) {
				input.consume();
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				recover(mse);
				throw mse;
			}
			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Letter"

	// $ANTLR start "Digit"
	public final void mDigit() throws RecognitionException {
		try {
			// liqp/Liquid.g:456:17: ( '0' .. '9' )
			// liqp/Liquid.g:
			{
			if ( (input.LA(1) >= '0' && input.LA(1) <= '9') ) {
				input.consume();
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				recover(mse);
				throw mse;
			}
			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Digit"

	// $ANTLR start "SStr"
	public final void mSStr() throws RecognitionException {
		try {
			// liqp/Liquid.g:457:17: ( '\\'' (~ '\\'' )* '\\'' )
			// liqp/Liquid.g:457:19: '\\'' (~ '\\'' )* '\\''
			{
			match('\''); 
			// liqp/Liquid.g:457:24: (~ '\\'' )*
			loop14:
			while (true) {
				int alt14=2;
				int LA14_0 = input.LA(1);
				if ( ((LA14_0 >= '\u0000' && LA14_0 <= '&')||(LA14_0 >= '(' && LA14_0 <= '\uFFFF')) ) {
					alt14=1;
				}

				switch (alt14) {
				case 1 :
					// liqp/Liquid.g:
					{
					if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '&')||(input.LA(1) >= '(' && input.LA(1) <= '\uFFFF') ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;

				default :
					break loop14;
				}
			}

			match('\''); 
			setText(strip(getText(), true));
			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "SStr"

	// $ANTLR start "DStr"
	public final void mDStr() throws RecognitionException {
		try {
			// liqp/Liquid.g:458:17: ( '\"' (~ '\"' )* '\"' )
			// liqp/Liquid.g:458:19: '\"' (~ '\"' )* '\"'
			{
			match('\"'); 
			// liqp/Liquid.g:458:23: (~ '\"' )*
			loop15:
			while (true) {
				int alt15=2;
				int LA15_0 = input.LA(1);
				if ( ((LA15_0 >= '\u0000' && LA15_0 <= '!')||(LA15_0 >= '#' && LA15_0 <= '\uFFFF')) ) {
					alt15=1;
				}

				switch (alt15) {
				case 1 :
					// liqp/Liquid.g:
					{
					if ( (input.LA(1) >= '\u0000' && input.LA(1) <= '!')||(input.LA(1) >= '#' && input.LA(1) <= '\uFFFF') ) {
						input.consume();
					}
					else {
						MismatchedSetException mse = new MismatchedSetException(null,input);
						recover(mse);
						throw mse;
					}
					}
					break;

				default :
					break loop15;
				}
			}

			match('\"'); 
			setText(strip(getText(), false));
			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "DStr"

	// $ANTLR start "CommentStart"
	public final void mCommentStart() throws RecognitionException {
		try {
			// liqp/Liquid.g:460:23: ( 'CommentStart' )
			// liqp/Liquid.g:460:25: 'CommentStart'
			{
			match("CommentStart"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "CommentStart"

	// $ANTLR start "CommentEnd"
	public final void mCommentEnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:461:21: ( 'CommentEnd' )
			// liqp/Liquid.g:461:23: 'CommentEnd'
			{
			match("CommentEnd"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "CommentEnd"

	// $ANTLR start "RawStart"
	public final void mRawStart() throws RecognitionException {
		try {
			// liqp/Liquid.g:462:19: ( 'RawStart' )
			// liqp/Liquid.g:462:21: 'RawStart'
			{
			match("RawStart"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "RawStart"

	// $ANTLR start "RawEnd"
	public final void mRawEnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:463:17: ( 'RawEnd' )
			// liqp/Liquid.g:463:19: 'RawEnd'
			{
			match("RawEnd"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "RawEnd"

	// $ANTLR start "IfStart"
	public final void mIfStart() throws RecognitionException {
		try {
			// liqp/Liquid.g:464:18: ( 'IfStart' )
			// liqp/Liquid.g:464:20: 'IfStart'
			{
			match("IfStart"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "IfStart"

	// $ANTLR start "IfEnd"
	public final void mIfEnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:465:16: ( 'IfEnd' )
			// liqp/Liquid.g:465:18: 'IfEnd'
			{
			match("IfEnd"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "IfEnd"

	// $ANTLR start "Elsif"
	public final void mElsif() throws RecognitionException {
		try {
			// liqp/Liquid.g:466:16: ( 'Elsif' )
			// liqp/Liquid.g:466:18: 'Elsif'
			{
			match("Elsif"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Elsif"

	// $ANTLR start "UnlessStart"
	public final void mUnlessStart() throws RecognitionException {
		try {
			// liqp/Liquid.g:467:22: ( 'UnlessStart' )
			// liqp/Liquid.g:467:24: 'UnlessStart'
			{
			match("UnlessStart"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "UnlessStart"

	// $ANTLR start "UnlessEnd"
	public final void mUnlessEnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:468:20: ( 'UnlessEnd' )
			// liqp/Liquid.g:468:22: 'UnlessEnd'
			{
			match("UnlessEnd"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "UnlessEnd"

	// $ANTLR start "Else"
	public final void mElse() throws RecognitionException {
		try {
			// liqp/Liquid.g:469:15: ( 'Else' )
			// liqp/Liquid.g:469:17: 'Else'
			{
			match("Else"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Else"

	// $ANTLR start "Contains"
	public final void mContains() throws RecognitionException {
		try {
			// liqp/Liquid.g:470:19: ( 'contains' )
			// liqp/Liquid.g:470:21: 'contains'
			{
			match("contains"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Contains"

	// $ANTLR start "CaseStart"
	public final void mCaseStart() throws RecognitionException {
		try {
			// liqp/Liquid.g:471:20: ( 'CaseStart' )
			// liqp/Liquid.g:471:22: 'CaseStart'
			{
			match("CaseStart"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "CaseStart"

	// $ANTLR start "CaseEnd"
	public final void mCaseEnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:472:18: ( 'CaseEnd' )
			// liqp/Liquid.g:472:20: 'CaseEnd'
			{
			match("CaseEnd"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "CaseEnd"

	// $ANTLR start "When"
	public final void mWhen() throws RecognitionException {
		try {
			// liqp/Liquid.g:473:15: ( 'When' )
			// liqp/Liquid.g:473:17: 'When'
			{
			match("When"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "When"

	// $ANTLR start "Cycle"
	public final void mCycle() throws RecognitionException {
		try {
			// liqp/Liquid.g:474:16: ( 'Cycle' )
			// liqp/Liquid.g:474:18: 'Cycle'
			{
			match("Cycle"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Cycle"

	// $ANTLR start "ForStart"
	public final void mForStart() throws RecognitionException {
		try {
			// liqp/Liquid.g:475:19: ( 'ForStart' )
			// liqp/Liquid.g:475:21: 'ForStart'
			{
			match("ForStart"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "ForStart"

	// $ANTLR start "ForEnd"
	public final void mForEnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:476:17: ( 'ForEnd' )
			// liqp/Liquid.g:476:19: 'ForEnd'
			{
			match("ForEnd"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "ForEnd"

	// $ANTLR start "In"
	public final void mIn() throws RecognitionException {
		try {
			// liqp/Liquid.g:477:13: ( 'In' )
			// liqp/Liquid.g:477:15: 'In'
			{
			match("In"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "In"

	// $ANTLR start "And"
	public final void mAnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:478:14: ( 'And' )
			// liqp/Liquid.g:478:16: 'And'
			{
			match("And"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "And"

	// $ANTLR start "Or"
	public final void mOr() throws RecognitionException {
		try {
			// liqp/Liquid.g:479:13: ( 'Or' )
			// liqp/Liquid.g:479:15: 'Or'
			{
			match("Or"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Or"

	// $ANTLR start "TableStart"
	public final void mTableStart() throws RecognitionException {
		try {
			// liqp/Liquid.g:480:21: ( 'TableStart' )
			// liqp/Liquid.g:480:23: 'TableStart'
			{
			match("TableStart"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "TableStart"

	// $ANTLR start "TableEnd"
	public final void mTableEnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:481:19: ( 'TableEnd' )
			// liqp/Liquid.g:481:21: 'TableEnd'
			{
			match("TableEnd"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "TableEnd"

	// $ANTLR start "Assign"
	public final void mAssign() throws RecognitionException {
		try {
			// liqp/Liquid.g:482:17: ( 'Assign' )
			// liqp/Liquid.g:482:19: 'Assign'
			{
			match("Assign"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Assign"

	// $ANTLR start "True"
	public final void mTrue() throws RecognitionException {
		try {
			// liqp/Liquid.g:483:15: ( 'True' )
			// liqp/Liquid.g:483:17: 'True'
			{
			match("True"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "True"

	// $ANTLR start "False"
	public final void mFalse() throws RecognitionException {
		try {
			// liqp/Liquid.g:484:16: ( 'False' )
			// liqp/Liquid.g:484:18: 'False'
			{
			match("False"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "False"

	// $ANTLR start "Nil"
	public final void mNil() throws RecognitionException {
		try {
			// liqp/Liquid.g:485:14: ( 'Nil' )
			// liqp/Liquid.g:485:16: 'Nil'
			{
			match("Nil"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Nil"

	// $ANTLR start "Include"
	public final void mInclude() throws RecognitionException {
		try {
			// liqp/Liquid.g:486:18: ( 'Include' )
			// liqp/Liquid.g:486:20: 'Include'
			{
			match("Include"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Include"

	// $ANTLR start "With"
	public final void mWith() throws RecognitionException {
		try {
			// liqp/Liquid.g:487:15: ( 'With' )
			// liqp/Liquid.g:487:17: 'With'
			{
			match("With"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "With"

	// $ANTLR start "CaptureStart"
	public final void mCaptureStart() throws RecognitionException {
		try {
			// liqp/Liquid.g:488:23: ( 'CaptureStart' )
			// liqp/Liquid.g:488:25: 'CaptureStart'
			{
			match("CaptureStart"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "CaptureStart"

	// $ANTLR start "CaptureEnd"
	public final void mCaptureEnd() throws RecognitionException {
		try {
			// liqp/Liquid.g:489:21: ( 'CaptureEnd' )
			// liqp/Liquid.g:489:23: 'CaptureEnd'
			{
			match("CaptureEnd"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "CaptureEnd"

	// $ANTLR start "EndId"
	public final void mEndId() throws RecognitionException {
		try {
			// liqp/Liquid.g:490:16: ( 'EndId' )
			// liqp/Liquid.g:490:18: 'EndId'
			{
			match("EndId"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "EndId"

	// $ANTLR start "Break"
	public final void mBreak() throws RecognitionException {
		try {
			// liqp/Liquid.g:491:16: ( 'Break' )
			// liqp/Liquid.g:491:18: 'Break'
			{
			match("Break"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Break"

	// $ANTLR start "Continue"
	public final void mContinue() throws RecognitionException {
		try {
			// liqp/Liquid.g:492:19: ( 'Continue' )
			// liqp/Liquid.g:492:21: 'Continue'
			{
			match("Continue"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Continue"

	// $ANTLR start "Empty"
	public final void mEmpty() throws RecognitionException {
		try {
			// liqp/Liquid.g:493:16: ( 'Empty' )
			// liqp/Liquid.g:493:18: 'Empty'
			{
			match("Empty"); 

			}

		}
		finally {
			// do for sure before leaving
		}
	}
	// $ANTLR end "Empty"

	@Override
	public void mTokens() throws RecognitionException {
		// liqp/Liquid.g:1:8: ( OutStart | OutEnd | TagStart | TagEnd | Str | DotDot | Dot | NEq | Eq | EqSign | GtEq | Gt | LtEq | Lt | Minus | Pipe | Col | Comma | OPar | CPar | OBr | CBr | QMark | DoubleNum | LongNum | WS | Id | Other | NoSpace )
		int alt16=29;
		alt16 = dfa16.predict(input);
		switch (alt16) {
			case 1 :
				// liqp/Liquid.g:1:10: OutStart
				{
				mOutStart(); 

				}
				break;
			case 2 :
				// liqp/Liquid.g:1:19: OutEnd
				{
				mOutEnd(); 

				}
				break;
			case 3 :
				// liqp/Liquid.g:1:26: TagStart
				{
				mTagStart(); 

				}
				break;
			case 4 :
				// liqp/Liquid.g:1:35: TagEnd
				{
				mTagEnd(); 

				}
				break;
			case 5 :
				// liqp/Liquid.g:1:42: Str
				{
				mStr(); 

				}
				break;
			case 6 :
				// liqp/Liquid.g:1:46: DotDot
				{
				mDotDot(); 

				}
				break;
			case 7 :
				// liqp/Liquid.g:1:53: Dot
				{
				mDot(); 

				}
				break;
			case 8 :
				// liqp/Liquid.g:1:57: NEq
				{
				mNEq(); 

				}
				break;
			case 9 :
				// liqp/Liquid.g:1:61: Eq
				{
				mEq(); 

				}
				break;
			case 10 :
				// liqp/Liquid.g:1:64: EqSign
				{
				mEqSign(); 

				}
				break;
			case 11 :
				// liqp/Liquid.g:1:71: GtEq
				{
				mGtEq(); 

				}
				break;
			case 12 :
				// liqp/Liquid.g:1:76: Gt
				{
				mGt(); 

				}
				break;
			case 13 :
				// liqp/Liquid.g:1:79: LtEq
				{
				mLtEq(); 

				}
				break;
			case 14 :
				// liqp/Liquid.g:1:84: Lt
				{
				mLt(); 

				}
				break;
			case 15 :
				// liqp/Liquid.g:1:87: Minus
				{
				mMinus(); 

				}
				break;
			case 16 :
				// liqp/Liquid.g:1:93: Pipe
				{
				mPipe(); 

				}
				break;
			case 17 :
				// liqp/Liquid.g:1:98: Col
				{
				mCol(); 

				}
				break;
			case 18 :
				// liqp/Liquid.g:1:102: Comma
				{
				mComma(); 

				}
				break;
			case 19 :
				// liqp/Liquid.g:1:108: OPar
				{
				mOPar(); 

				}
				break;
			case 20 :
				// liqp/Liquid.g:1:113: CPar
				{
				mCPar(); 

				}
				break;
			case 21 :
				// liqp/Liquid.g:1:118: OBr
				{
				mOBr(); 

				}
				break;
			case 22 :
				// liqp/Liquid.g:1:122: CBr
				{
				mCBr(); 

				}
				break;
			case 23 :
				// liqp/Liquid.g:1:126: QMark
				{
				mQMark(); 

				}
				break;
			case 24 :
				// liqp/Liquid.g:1:132: DoubleNum
				{
				mDoubleNum(); 

				}
				break;
			case 25 :
				// liqp/Liquid.g:1:142: LongNum
				{
				mLongNum(); 

				}
				break;
			case 26 :
				// liqp/Liquid.g:1:150: WS
				{
				mWS(); 

				}
				break;
			case 27 :
				// liqp/Liquid.g:1:153: Id
				{
				mId(); 

				}
				break;
			case 28 :
				// liqp/Liquid.g:1:156: Other
				{
				mOther(); 

				}
				break;
			case 29 :
				// liqp/Liquid.g:1:162: NoSpace
				{
				mNoSpace(); 

				}
				break;

		}
	}


	protected DFA16 dfa16 = new DFA16(this);
	static final String DFA16_eotS =
		"\1\uffff\1\32\1\35\1\37\1\42\1\45\1\47\1\51\1\54\1\56\1\60\1\61\1\63\1"+
		"\64\1\65\1\66\1\67\1\70\1\71\1\72\1\74\1\75\1\77\1\100\1\101\1\102\2\uffff"+
		"\1\104\1\uffff\1\105\1\uffff\1\33\1\106\1\uffff\1\33\1\107\1\uffff\1\110"+
		"\1\uffff\1\112\1\uffff\1\113\1\114\1\uffff\1\116\1\uffff\1\120\2\uffff"+
		"\1\123\10\uffff\1\135\2\uffff\1\141\35\uffff\1\155\21\uffff";
	static final String DFA16_eofS =
		"\156\uffff";
	static final String DFA16_minS =
		"\33\0\1\uffff\47\0\1\uffff\5\0\1\uffff\3\0\1\uffff\1\0\1\uffff\1\0\2\uffff"+
		"\1\0\10\uffff\2\0\3\uffff\1\0\13\uffff\1\0";
	static final String DFA16_maxS =
		"\32\uffff\1\0\1\uffff\1\uffff\1\0\1\uffff\1\0\2\uffff\1\0\2\uffff\1\0"+
		"\1\uffff\1\0\1\uffff\1\0\2\uffff\1\0\1\uffff\1\0\1\uffff\2\0\1\uffff\10"+
		"\0\1\uffff\2\0\1\uffff\4\0\1\uffff\5\0\1\uffff\3\0\1\uffff\1\0\1\uffff"+
		"\1\0\2\uffff\1\0\10\uffff\1\uffff\1\0\3\uffff\1\0\13\uffff\1\0";
	static final String DFA16_acceptS =
		"\33\uffff\1\34\47\uffff\1\35\5\uffff\1\7\3\uffff\1\16\1\uffff\1\12\1\uffff"+
		"\1\14\1\17\1\uffff\1\20\1\21\1\22\1\23\1\24\1\25\1\26\1\27\2\uffff\1\30"+
		"\1\31\1\32\1\uffff\1\33\1\1\1\3\1\2\1\4\1\5\1\6\1\10\1\15\1\11\1\13\1"+
		"\uffff";
	static final String DFA16_specialS =
		"\1\41\1\111\1\36\1\42\1\47\1\106\1\46\1\53\1\107\1\104\1\112\1\116\1\34"+
		"\1\37\1\43\1\45\1\52\1\62\1\76\1\100\1\113\1\110\1\40\1\105\1\51\1\77"+
		"\1\24\1\uffff\1\66\1\25\1\103\1\26\1\117\1\115\1\27\1\35\1\14\1\30\1\33"+
		"\1\54\1\0\1\31\1\5\1\101\1\57\1\44\1\55\1\60\1\56\1\61\1\50\1\63\1\64"+
		"\1\65\1\67\1\70\1\72\1\73\1\74\1\102\1\114\1\21\1\2\1\75\1\32\1\120\1"+
		"\3\1\uffff\1\1\1\4\1\6\1\7\1\10\1\uffff\1\11\1\12\1\16\1\uffff\1\13\1"+
		"\uffff\1\15\2\uffff\1\71\10\uffff\1\22\1\17\3\uffff\1\23\13\uffff\1\20}>";
	static final String[] DFA16_transitionS = {
			"\11\27\2\25\2\27\1\25\22\27\1\25\1\7\1\5\2\27\1\3\1\27\1\4\1\17\1\20"+
			"\2\27\1\16\1\13\1\6\1\27\12\24\1\15\1\27\1\10\1\11\1\12\1\23\1\27\32"+
			"\26\1\21\1\27\1\22\1\27\1\26\1\27\32\26\1\1\1\14\1\2\uff82\27",
			"\45\33\1\31\125\33\1\30\uff84\33",
			"\175\33\1\34\uff82\33",
			"\175\33\1\36\uff82\33",
			"\47\40\1\41\uffd8\40",
			"\42\43\1\44\uffdd\43",
			"\56\33\1\46\uffd1\33",
			"\75\33\1\50\uffc2\33",
			"\75\33\1\53\1\52\uffc1\33",
			"\75\33\1\55\uffc2\33",
			"\75\33\1\57\uffc2\33",
			"\60\33\12\62\uffc6\33",
			"\0\33",
			"\0\33",
			"\0\33",
			"\0\33",
			"\0\33",
			"\0\33",
			"\0\33",
			"\0\33",
			"\56\33\1\73\1\33\12\62\uffc6\33",
			"\11\33\2\25\2\33\1\25\22\33\1\25\uffdf\33",
			"\55\33\1\76\2\33\12\76\7\33\32\76\4\33\1\76\1\33\32\76\uff85\33",
			"\0\33",
			"\0\33",
			"\0\33",
			"\1\uffff",
			"",
			"\0\33",
			"\1\uffff",
			"\0\33",
			"\1\uffff",
			"\47\40\1\41\uffd8\40",
			"\0\33",
			"\1\uffff",
			"\42\43\1\44\uffdd\43",
			"\0\33",
			"\1\uffff",
			"\0\33",
			"\1\uffff",
			"\0\33",
			"\1\uffff",
			"\0\33",
			"\0\33",
			"\1\uffff",
			"\0\33",
			"\1\uffff",
			"\0\33",
			"\1\uffff",
			"\1\uffff",
			"\56\33\1\73\1\33\12\62\uffc6\33",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\60\33\12\134\uffc6\33",
			"\1\uffff",
			"\1\uffff",
			"\55\33\1\76\2\33\12\76\7\33\32\76\4\33\1\76\1\33\32\76\uff85\33",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"",
			"\1\uffff",
			"\1\uffff",
			"\1\uffff",
			"",
			"\1\uffff",
			"",
			"\1\uffff",
			"",
			"",
			"\1\uffff",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"\60\33\12\134\uffc6\33",
			"\1\uffff",
			"",
			"",
			"",
			"\1\uffff",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"",
			"\1\uffff"
	};

	static final short[] DFA16_eot = DFA.unpackEncodedString(DFA16_eotS);
	static final short[] DFA16_eof = DFA.unpackEncodedString(DFA16_eofS);
	static final char[] DFA16_min = DFA.unpackEncodedStringToUnsignedChars(DFA16_minS);
	static final char[] DFA16_max = DFA.unpackEncodedStringToUnsignedChars(DFA16_maxS);
	static final short[] DFA16_accept = DFA.unpackEncodedString(DFA16_acceptS);
	static final short[] DFA16_special = DFA.unpackEncodedString(DFA16_specialS);
	static final short[][] DFA16_transition;

	static {
		int numStates = DFA16_transitionS.length;
		DFA16_transition = new short[numStates][];
		for (int i=0; i= '\u0000' && LA16_40 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 74;
						 
						input.seek(index16_40);
						if ( s>=0 ) return s;
						break;

					case 1 : 
						int LA16_68 = input.LA(1);
						 
						int index16_68 = input.index();
						input.rewind();
						s = -1;
						if ( (!((((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))))) ) {s = 101;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_68);
						if ( s>=0 ) return s;
						break;

					case 2 : 
						int LA16_62 = input.LA(1);
						 
						int index16_62 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_62=='-'||(LA16_62 >= '0' && LA16_62 <= '9')||(LA16_62 >= 'A' && LA16_62 <= 'Z')||LA16_62=='_'||(LA16_62 >= 'a' && LA16_62 <= 'z')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 62;}
						else if ( ((LA16_62 >= '\u0000' && LA16_62 <= ',')||(LA16_62 >= '.' && LA16_62 <= '/')||(LA16_62 >= ':' && LA16_62 <= '@')||(LA16_62 >= '[' && LA16_62 <= '^')||LA16_62=='`'||(LA16_62 >= '{' && LA16_62 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 97;
						 
						input.seek(index16_62);
						if ( s>=0 ) return s;
						break;

					case 3 : 
						int LA16_66 = input.LA(1);
						 
						int index16_66 = input.index();
						input.rewind();
						s = -1;
						if ( (!((((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))))) ) {s = 100;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_66);
						if ( s>=0 ) return s;
						break;

					case 4 : 
						int LA16_69 = input.LA(1);
						 
						int index16_69 = input.index();
						input.rewind();
						s = -1;
						if ( (!((((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))))) ) {s = 102;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_69);
						if ( s>=0 ) return s;
						break;

					case 5 : 
						int LA16_42 = input.LA(1);
						 
						int index16_42 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_42 >= '\u0000' && LA16_42 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 75;
						 
						input.seek(index16_42);
						if ( s>=0 ) return s;
						break;

					case 6 : 
						int LA16_70 = input.LA(1);
						 
						int index16_70 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 103;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_70);
						if ( s>=0 ) return s;
						break;

					case 7 : 
						int LA16_71 = input.LA(1);
						 
						int index16_71 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 103;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_71);
						if ( s>=0 ) return s;
						break;

					case 8 : 
						int LA16_72 = input.LA(1);
						 
						int index16_72 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 104;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_72);
						if ( s>=0 ) return s;
						break;

					case 9 : 
						int LA16_74 = input.LA(1);
						 
						int index16_74 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 105;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_74);
						if ( s>=0 ) return s;
						break;

					case 10 : 
						int LA16_75 = input.LA(1);
						 
						int index16_75 = input.index();
						input.rewind();
						s = -1;
						if ( (!((((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))))) ) {s = 105;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_75);
						if ( s>=0 ) return s;
						break;

					case 11 : 
						int LA16_78 = input.LA(1);
						 
						int index16_78 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 107;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_78);
						if ( s>=0 ) return s;
						break;

					case 12 : 
						int LA16_36 = input.LA(1);
						 
						int index16_36 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_36 >= '\u0000' && LA16_36 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 71;
						 
						input.seek(index16_36);
						if ( s>=0 ) return s;
						break;

					case 13 : 
						int LA16_80 = input.LA(1);
						 
						int index16_80 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 108;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_80);
						if ( s>=0 ) return s;
						break;

					case 14 : 
						int LA16_76 = input.LA(1);
						 
						int index16_76 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 106;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_76);
						if ( s>=0 ) return s;
						break;

					case 15 : 
						int LA16_93 = input.LA(1);
						 
						int index16_93 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 94;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_93);
						if ( s>=0 ) return s;
						break;

					case 16 : 
						int LA16_109 = input.LA(1);
						 
						int index16_109 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 94;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_109);
						if ( s>=0 ) return s;
						break;

					case 17 : 
						int LA16_61 = input.LA(1);
						 
						int index16_61 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 96;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_61);
						if ( s>=0 ) return s;
						break;

					case 18 : 
						int LA16_92 = input.LA(1);
						 
						int index16_92 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_92 >= '0' && LA16_92 <= '9')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 92;}
						else if ( ((LA16_92 >= '\u0000' && LA16_92 <= '/')||(LA16_92 >= ':' && LA16_92 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 109;
						 
						input.seek(index16_92);
						if ( s>=0 ) return s;
						break;

					case 19 : 
						int LA16_97 = input.LA(1);
						 
						int index16_97 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 98;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_97);
						if ( s>=0 ) return s;
						break;

					case 20 : 
						int LA16_26 = input.LA(1);
						 
						int index16_26 = input.index();
						input.rewind();
						s = -1;
						if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_26);
						if ( s>=0 ) return s;
						break;

					case 21 : 
						int LA16_29 = input.LA(1);
						 
						int index16_29 = input.index();
						input.rewind();
						s = -1;
						if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_29);
						if ( s>=0 ) return s;
						break;

					case 22 : 
						int LA16_31 = input.LA(1);
						 
						int index16_31 = input.index();
						input.rewind();
						s = -1;
						if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_31);
						if ( s>=0 ) return s;
						break;

					case 23 : 
						int LA16_34 = input.LA(1);
						 
						int index16_34 = input.index();
						input.rewind();
						s = -1;
						if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_34);
						if ( s>=0 ) return s;
						break;

					case 24 : 
						int LA16_37 = input.LA(1);
						 
						int index16_37 = input.index();
						input.rewind();
						s = -1;
						if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_37);
						if ( s>=0 ) return s;
						break;

					case 25 : 
						int LA16_41 = input.LA(1);
						 
						int index16_41 = input.index();
						input.rewind();
						s = -1;
						if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_41);
						if ( s>=0 ) return s;
						break;

					case 26 : 
						int LA16_64 = input.LA(1);
						 
						int index16_64 = input.index();
						input.rewind();
						s = -1;
						if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_64);
						if ( s>=0 ) return s;
						break;

					case 27 : 
						int LA16_38 = input.LA(1);
						 
						int index16_38 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_38 >= '\u0000' && LA16_38 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 72;
						 
						input.seek(index16_38);
						if ( s>=0 ) return s;
						break;

					case 28 : 
						int LA16_12 = input.LA(1);
						 
						int index16_12 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_12 >= '\u0000' && LA16_12 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 51;
						 
						input.seek(index16_12);
						if ( s>=0 ) return s;
						break;

					case 29 : 
						int LA16_35 = input.LA(1);
						 
						int index16_35 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_35=='\"') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 36;}
						else if ( ((LA16_35 >= '\u0000' && LA16_35 <= '!')||(LA16_35 >= '#' && LA16_35 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 35;}
						else s = 27;
						 
						input.seek(index16_35);
						if ( s>=0 ) return s;
						break;

					case 30 : 
						int LA16_2 = input.LA(1);
						 
						int index16_2 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_2=='}') ) {s = 28;}
						else if ( ((LA16_2 >= '\u0000' && LA16_2 <= '|')||(LA16_2 >= '~' && LA16_2 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 29;
						 
						input.seek(index16_2);
						if ( s>=0 ) return s;
						break;

					case 31 : 
						int LA16_13 = input.LA(1);
						 
						int index16_13 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_13 >= '\u0000' && LA16_13 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 52;
						 
						input.seek(index16_13);
						if ( s>=0 ) return s;
						break;

					case 32 : 
						int LA16_22 = input.LA(1);
						 
						int index16_22 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_22=='-'||(LA16_22 >= '0' && LA16_22 <= '9')||(LA16_22 >= 'A' && LA16_22 <= 'Z')||LA16_22=='_'||(LA16_22 >= 'a' && LA16_22 <= 'z')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 62;}
						else if ( ((LA16_22 >= '\u0000' && LA16_22 <= ',')||(LA16_22 >= '.' && LA16_22 <= '/')||(LA16_22 >= ':' && LA16_22 <= '@')||(LA16_22 >= '[' && LA16_22 <= '^')||LA16_22=='`'||(LA16_22 >= '{' && LA16_22 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 63;
						 
						input.seek(index16_22);
						if ( s>=0 ) return s;
						break;

					case 33 : 
						int LA16_0 = input.LA(1);
						 
						int index16_0 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_0=='{') ) {s = 1;}
						else if ( (LA16_0=='}') ) {s = 2;}
						else if ( (LA16_0=='%') ) {s = 3;}
						else if ( (LA16_0=='\'') ) {s = 4;}
						else if ( (LA16_0=='\"') ) {s = 5;}
						else if ( (LA16_0=='.') ) {s = 6;}
						else if ( (LA16_0=='!') ) {s = 7;}
						else if ( (LA16_0=='<') ) {s = 8;}
						else if ( (LA16_0=='=') ) {s = 9;}
						else if ( (LA16_0=='>') ) {s = 10;}
						else if ( (LA16_0=='-') ) {s = 11;}
						else if ( (LA16_0=='|') ) {s = 12;}
						else if ( (LA16_0==':') ) {s = 13;}
						else if ( (LA16_0==',') ) {s = 14;}
						else if ( (LA16_0=='(') ) {s = 15;}
						else if ( (LA16_0==')') ) {s = 16;}
						else if ( (LA16_0=='[') ) {s = 17;}
						else if ( (LA16_0==']') ) {s = 18;}
						else if ( (LA16_0=='?') ) {s = 19;}
						else if ( ((LA16_0 >= '0' && LA16_0 <= '9')) ) {s = 20;}
						else if ( ((LA16_0 >= '\t' && LA16_0 <= '\n')||LA16_0=='\r'||LA16_0==' ') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 21;}
						else if ( ((LA16_0 >= 'A' && LA16_0 <= 'Z')||LA16_0=='_'||(LA16_0 >= 'a' && LA16_0 <= 'z')) ) {s = 22;}
						else if ( ((LA16_0 >= '\u0000' && LA16_0 <= '\b')||(LA16_0 >= '\u000B' && LA16_0 <= '\f')||(LA16_0 >= '\u000E' && LA16_0 <= '\u001F')||(LA16_0 >= '#' && LA16_0 <= '$')||LA16_0=='&'||(LA16_0 >= '*' && LA16_0 <= '+')||LA16_0=='/'||LA16_0==';'||LA16_0=='@'||LA16_0=='\\'||LA16_0=='^'||LA16_0=='`'||(LA16_0 >= '~' && LA16_0 <= '\uFFFF')) ) {s = 23;}
						 
						input.seek(index16_0);
						if ( s>=0 ) return s;
						break;

					case 34 : 
						int LA16_3 = input.LA(1);
						 
						int index16_3 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_3=='}') ) {s = 30;}
						else if ( ((LA16_3 >= '\u0000' && LA16_3 <= '|')||(LA16_3 >= '~' && LA16_3 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 31;
						 
						input.seek(index16_3);
						if ( s>=0 ) return s;
						break;

					case 35 : 
						int LA16_14 = input.LA(1);
						 
						int index16_14 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_14 >= '\u0000' && LA16_14 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 53;
						 
						input.seek(index16_14);
						if ( s>=0 ) return s;
						break;

					case 36 : 
						int LA16_45 = input.LA(1);
						 
						int index16_45 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_45 >= '\u0000' && LA16_45 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 78;
						 
						input.seek(index16_45);
						if ( s>=0 ) return s;
						break;

					case 37 : 
						int LA16_15 = input.LA(1);
						 
						int index16_15 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_15 >= '\u0000' && LA16_15 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 54;
						 
						input.seek(index16_15);
						if ( s>=0 ) return s;
						break;

					case 38 : 
						int LA16_6 = input.LA(1);
						 
						int index16_6 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_6=='.') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 38;}
						else if ( ((LA16_6 >= '\u0000' && LA16_6 <= '-')||(LA16_6 >= '/' && LA16_6 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 39;
						 
						input.seek(index16_6);
						if ( s>=0 ) return s;
						break;

					case 39 : 
						int LA16_4 = input.LA(1);
						 
						int index16_4 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_4 >= '\u0000' && LA16_4 <= '&')||(LA16_4 >= '(' && LA16_4 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 32;}
						else if ( (LA16_4=='\'') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 33;}
						else s = 34;
						 
						input.seek(index16_4);
						if ( s>=0 ) return s;
						break;

					case 40 : 
						int LA16_50 = input.LA(1);
						 
						int index16_50 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_50=='.') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 59;}
						else if ( ((LA16_50 >= '0' && LA16_50 <= '9')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 50;}
						else if ( ((LA16_50 >= '\u0000' && LA16_50 <= '-')||LA16_50=='/'||(LA16_50 >= ':' && LA16_50 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 83;
						 
						input.seek(index16_50);
						if ( s>=0 ) return s;
						break;

					case 41 : 
						int LA16_24 = input.LA(1);
						 
						int index16_24 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_24 >= '\u0000' && LA16_24 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 65;
						 
						input.seek(index16_24);
						if ( s>=0 ) return s;
						break;

					case 42 : 
						int LA16_16 = input.LA(1);
						 
						int index16_16 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_16 >= '\u0000' && LA16_16 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 55;
						 
						input.seek(index16_16);
						if ( s>=0 ) return s;
						break;

					case 43 : 
						int LA16_7 = input.LA(1);
						 
						int index16_7 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_7=='=') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 40;}
						else if ( ((LA16_7 >= '\u0000' && LA16_7 <= '<')||(LA16_7 >= '>' && LA16_7 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 41;
						 
						input.seek(index16_7);
						if ( s>=0 ) return s;
						break;

					case 44 : 
						int LA16_39 = input.LA(1);
						 
						int index16_39 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 73;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_39);
						if ( s>=0 ) return s;
						break;

					case 45 : 
						int LA16_46 = input.LA(1);
						 
						int index16_46 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 79;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_46);
						if ( s>=0 ) return s;
						break;

					case 46 : 
						int LA16_48 = input.LA(1);
						 
						int index16_48 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 81;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_48);
						if ( s>=0 ) return s;
						break;

					case 47 : 
						int LA16_44 = input.LA(1);
						 
						int index16_44 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 77;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_44);
						if ( s>=0 ) return s;
						break;

					case 48 : 
						int LA16_47 = input.LA(1);
						 
						int index16_47 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_47 >= '\u0000' && LA16_47 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 80;
						 
						input.seek(index16_47);
						if ( s>=0 ) return s;
						break;

					case 49 : 
						int LA16_49 = input.LA(1);
						 
						int index16_49 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 82;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_49);
						if ( s>=0 ) return s;
						break;

					case 50 : 
						int LA16_17 = input.LA(1);
						 
						int index16_17 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_17 >= '\u0000' && LA16_17 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 56;
						 
						input.seek(index16_17);
						if ( s>=0 ) return s;
						break;

					case 51 : 
						int LA16_51 = input.LA(1);
						 
						int index16_51 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 84;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_51);
						if ( s>=0 ) return s;
						break;

					case 52 : 
						int LA16_52 = input.LA(1);
						 
						int index16_52 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 85;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_52);
						if ( s>=0 ) return s;
						break;

					case 53 : 
						int LA16_53 = input.LA(1);
						 
						int index16_53 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 86;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_53);
						if ( s>=0 ) return s;
						break;

					case 54 : 
						int LA16_28 = input.LA(1);
						 
						int index16_28 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_28 >= '\u0000' && LA16_28 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 68;
						 
						input.seek(index16_28);
						if ( s>=0 ) return s;
						break;

					case 55 : 
						int LA16_54 = input.LA(1);
						 
						int index16_54 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 87;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_54);
						if ( s>=0 ) return s;
						break;

					case 56 : 
						int LA16_55 = input.LA(1);
						 
						int index16_55 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 88;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_55);
						if ( s>=0 ) return s;
						break;

					case 57 : 
						int LA16_83 = input.LA(1);
						 
						int index16_83 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 94;}
						else if ( ((inTag)) ) {s = 95;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_83);
						if ( s>=0 ) return s;
						break;

					case 58 : 
						int LA16_56 = input.LA(1);
						 
						int index16_56 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 89;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_56);
						if ( s>=0 ) return s;
						break;

					case 59 : 
						int LA16_57 = input.LA(1);
						 
						int index16_57 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 90;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_57);
						if ( s>=0 ) return s;
						break;

					case 60 : 
						int LA16_58 = input.LA(1);
						 
						int index16_58 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 91;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_58);
						if ( s>=0 ) return s;
						break;

					case 61 : 
						int LA16_63 = input.LA(1);
						 
						int index16_63 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 98;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_63);
						if ( s>=0 ) return s;
						break;

					case 62 : 
						int LA16_18 = input.LA(1);
						 
						int index16_18 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_18 >= '\u0000' && LA16_18 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 57;
						 
						input.seek(index16_18);
						if ( s>=0 ) return s;
						break;

					case 63 : 
						int LA16_25 = input.LA(1);
						 
						int index16_25 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_25 >= '\u0000' && LA16_25 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 66;
						 
						input.seek(index16_25);
						if ( s>=0 ) return s;
						break;

					case 64 : 
						int LA16_19 = input.LA(1);
						 
						int index16_19 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_19 >= '\u0000' && LA16_19 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 58;
						 
						input.seek(index16_19);
						if ( s>=0 ) return s;
						break;

					case 65 : 
						int LA16_43 = input.LA(1);
						 
						int index16_43 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_43 >= '\u0000' && LA16_43 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 76;
						 
						input.seek(index16_43);
						if ( s>=0 ) return s;
						break;

					case 66 : 
						int LA16_59 = input.LA(1);
						 
						int index16_59 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_59 >= '0' && LA16_59 <= '9')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 92;}
						else if ( ((LA16_59 >= '\u0000' && LA16_59 <= '/')||(LA16_59 >= ':' && LA16_59 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 93;
						 
						input.seek(index16_59);
						if ( s>=0 ) return s;
						break;

					case 67 : 
						int LA16_30 = input.LA(1);
						 
						int index16_30 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_30 >= '\u0000' && LA16_30 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 69;
						 
						input.seek(index16_30);
						if ( s>=0 ) return s;
						break;

					case 68 : 
						int LA16_9 = input.LA(1);
						 
						int index16_9 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_9=='=') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 45;}
						else if ( ((LA16_9 >= '\u0000' && LA16_9 <= '<')||(LA16_9 >= '>' && LA16_9 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 46;
						 
						input.seek(index16_9);
						if ( s>=0 ) return s;
						break;

					case 69 : 
						int LA16_23 = input.LA(1);
						 
						int index16_23 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_23 >= '\u0000' && LA16_23 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 64;
						 
						input.seek(index16_23);
						if ( s>=0 ) return s;
						break;

					case 70 : 
						int LA16_5 = input.LA(1);
						 
						int index16_5 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_5 >= '\u0000' && LA16_5 <= '!')||(LA16_5 >= '#' && LA16_5 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 35;}
						else if ( (LA16_5=='\"') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 36;}
						else s = 37;
						 
						input.seek(index16_5);
						if ( s>=0 ) return s;
						break;

					case 71 : 
						int LA16_8 = input.LA(1);
						 
						int index16_8 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_8=='>') ) {s = 42;}
						else if ( (LA16_8=='=') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 43;}
						else if ( ((LA16_8 >= '\u0000' && LA16_8 <= '<')||(LA16_8 >= '?' && LA16_8 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 44;
						 
						input.seek(index16_8);
						if ( s>=0 ) return s;
						break;

					case 72 : 
						int LA16_21 = input.LA(1);
						 
						int index16_21 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_21 >= '\t' && LA16_21 <= '\n')||LA16_21=='\r'||LA16_21==' ') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 21;}
						else if ( ((LA16_21 >= '\u0000' && LA16_21 <= '\b')||(LA16_21 >= '\u000B' && LA16_21 <= '\f')||(LA16_21 >= '\u000E' && LA16_21 <= '\u001F')||(LA16_21 >= '!' && LA16_21 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 61;
						 
						input.seek(index16_21);
						if ( s>=0 ) return s;
						break;

					case 73 : 
						int LA16_1 = input.LA(1);
						 
						int index16_1 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_1=='{') ) {s = 24;}
						else if ( (LA16_1=='%') ) {s = 25;}
						else if ( ((LA16_1 >= '\u0000' && LA16_1 <= '$')||(LA16_1 >= '&' && LA16_1 <= 'z')||(LA16_1 >= '|' && LA16_1 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 26;
						 
						input.seek(index16_1);
						if ( s>=0 ) return s;
						break;

					case 74 : 
						int LA16_10 = input.LA(1);
						 
						int index16_10 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_10=='=') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 47;}
						else if ( ((LA16_10 >= '\u0000' && LA16_10 <= '<')||(LA16_10 >= '>' && LA16_10 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 48;
						 
						input.seek(index16_10);
						if ( s>=0 ) return s;
						break;

					case 75 : 
						int LA16_20 = input.LA(1);
						 
						int index16_20 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_20=='.') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 59;}
						else if ( ((LA16_20 >= '0' && LA16_20 <= '9')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 50;}
						else if ( ((LA16_20 >= '\u0000' && LA16_20 <= '-')||LA16_20=='/'||(LA16_20 >= ':' && LA16_20 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 60;
						 
						input.seek(index16_20);
						if ( s>=0 ) return s;
						break;

					case 76 : 
						int LA16_60 = input.LA(1);
						 
						int index16_60 = input.index();
						input.rewind();
						s = -1;
						if ( ((inTag)) ) {s = 94;}
						else if ( ((inTag)) ) {s = 95;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						else if ( (true) ) {s = 67;}
						 
						input.seek(index16_60);
						if ( s>=0 ) return s;
						break;

					case 77 : 
						int LA16_33 = input.LA(1);
						 
						int index16_33 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_33 >= '\u0000' && LA16_33 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 70;
						 
						input.seek(index16_33);
						if ( s>=0 ) return s;
						break;

					case 78 : 
						int LA16_11 = input.LA(1);
						 
						int index16_11 = input.index();
						input.rewind();
						s = -1;
						if ( ((LA16_11 >= '0' && LA16_11 <= '9')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 50;}
						else if ( ((LA16_11 >= '\u0000' && LA16_11 <= '/')||(LA16_11 >= ':' && LA16_11 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())))) {s = 27;}
						else s = 49;
						 
						input.seek(index16_11);
						if ( s>=0 ) return s;
						break;

					case 79 : 
						int LA16_32 = input.LA(1);
						 
						int index16_32 = input.index();
						input.rewind();
						s = -1;
						if ( (LA16_32=='\'') && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 33;}
						else if ( ((LA16_32 >= '\u0000' && LA16_32 <= '&')||(LA16_32 >= '(' && LA16_32 <= '\uFFFF')) && (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead())||(inTag)))) {s = 32;}
						else s = 27;
						 
						input.seek(index16_32);
						if ( s>=0 ) return s;
						break;

					case 80 : 
						int LA16_65 = input.LA(1);
						 
						int index16_65 = input.index();
						input.rewind();
						s = -1;
						if ( (!((((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))))) ) {s = 99;}
						else if ( (((!inTag && inRaw && !openRawEndTagAhead())||(!inTag && !openTagAhead()))) ) {s = 27;}
						 
						input.seek(index16_65);
						if ( s>=0 ) return s;
						break;
			}
			NoViableAltException nvae =
				new NoViableAltException(getDescription(), 16, _s, input);
			error(nvae);
			throw nvae;
		}
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy