SyntaxTreeBuilderTokenManager.java

/*******************************************************************************
 * Copyright (c) 2019 Eclipse RDF4J contributors.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Distribution License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 *******************************************************************************/
/* SyntaxTreeBuilderTokenManager.java */
/* Generated By:JJTree&JavaCC: Do not edit this line. SyntaxTreeBuilderTokenManager.java */
package org.eclipse.rdf4j.query.parser.sparql.ast;

/**
 * Token Manager.
 */
@SuppressWarnings("unused")
public class SyntaxTreeBuilderTokenManager implements SyntaxTreeBuilderConstants {

	/**
	 * Debug output.
	 */
	public java.io.PrintStream debugStream = System.out;

	/**
	 * Set debug output.
	 */
	public void setDebugStream(java.io.PrintStream ds) {
		debugStream = ds;
	}

	private int jjStopAtPos(int pos, int kind) {
		jjmatchedKind = kind;
		jjmatchedPos = pos;
		return pos + 1;
	}

	private int jjMoveStringLiteralDfa0_0() {
		switch (curChar) {
		case 33:
			jjmatchedKind = 19;
			return jjMoveStringLiteralDfa1_0(0x4000L, 0x0L, 0x0L);
		case 38:
			return jjMoveStringLiteralDfa1_0(0x200000L, 0x0L, 0x0L);
		case 40:
			jjmatchedKind = 4;
			return jjMoveNfa_0(0);
		case 41:
			jjmatchedKind = 5;
			return jjMoveNfa_0(0);
		case 42:
			jjmatchedKind = 24;
			return jjMoveNfa_0(0);
		case 43:
			jjmatchedKind = 22;
			return jjMoveNfa_0(0);
		case 44:
			jjmatchedKind = 11;
			return jjMoveNfa_0(0);
		case 45:
			jjmatchedKind = 23;
			return jjMoveNfa_0(0);
		case 46:
			jjmatchedKind = 12;
			return jjMoveNfa_0(0);
		case 47:
			jjmatchedKind = 26;
			return jjMoveNfa_0(0);
		case 59:
			jjmatchedKind = 10;
			return jjMoveNfa_0(0);
		case 60:
			jjmatchedKind = 16;
			return jjMoveStringLiteralDfa1_0(0x20000L, 0x0L, 0x400000000000000L);
		case 61:
			jjmatchedKind = 13;
			return jjMoveNfa_0(0);
		case 62:
			jjmatchedKind = 15;
			return jjMoveStringLiteralDfa1_0(0x40000L, 0x0L, 0x800000000000000L);
		case 63:
			jjmatchedKind = 25;
			return jjMoveNfa_0(0);
		case 65:
			return jjMoveStringLiteralDfa1_0(0x1024000000000L, 0x100000080000L, 0x1004L);
		case 66:
		case 98:
			return jjMoveStringLiteralDfa1_0(0x800200000000L, 0x14000081L, 0x0L);
		case 67:
		case 99:
			return jjMoveStringLiteralDfa1_0(0x1000000000L, 0x230000008040L, 0x31L);
		case 68:
		case 100:
			return jjMoveStringLiteralDfa1_0(0x800200a000000000L, 0x8000000000000L, 0x982L);
		case 69:
		case 101:
			return jjMoveStringLiteralDfa1_0(0x800000000000000L, 0x40000000000L, 0x0L);
		case 70:
			return jjMoveStringLiteralDfa1_0(0x100040000000000L, 0x400002000000L, 0x0L);
		case 71:
			return jjMoveStringLiteralDfa1_0(0x20400000000000L, 0x200000L, 0x0L);
		case 72:
			return jjMoveStringLiteralDfa1_0(0x200000000000000L, 0x10000000000000L, 0x0L);
		case 73:
			return jjMoveStringLiteralDfa1_0(0x0L, 0x6038L, 0x2040L);
		case 76:
			return jjMoveStringLiteralDfa1_0(0x6004000000000000L, 0x8000008000000000L, 0x0L);
		case 77:
			return jjMoveStringLiteralDfa1_0(0x80000000000000L, 0x224000000060000L, 0x8L);
		case 78:
			return jjMoveStringLiteralDfa1_0(0x400080000000000L, 0x1000000000000L, 0x0L);
		case 79:
			return jjMoveStringLiteralDfa1_0(0x18200000000000L, 0x0L, 0x0L);
		case 80:
			return jjMoveStringLiteralDfa1_0(0x400000000L, 0x0L, 0x0L);
		case 82:
			return jjMoveStringLiteralDfa1_0(0x10000000000L, 0x882000800000L, 0x0L);
		case 83:
			return jjMoveStringLiteralDfa1_0(0x1000000800000000L, 0x7c40001f88510b02L, 0x400L);
		case 84:
			return jjMoveStringLiteralDfa1_0(0x0L, 0x180000001000000L, 0x4000L);
		case 85:
			return jjMoveStringLiteralDfa1_0(0x40000000000000L, 0x4040000400L, 0x8000L);
		case 86:
			return jjMoveStringLiteralDfa1_0(0x0L, 0x20000000L, 0x0L);
		case 87:
			return jjMoveStringLiteralDfa1_0(0x100000000000L, 0x0L, 0x200L);
		case 89:
			return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000000000L, 0x0L);
		case 91:
			jjmatchedKind = 8;
			return jjMoveNfa_0(0);
		case 93:
			jjmatchedKind = 9;
			return jjMoveNfa_0(0);
		case 94:
			jjmatchedKind = 28;
			return jjMoveStringLiteralDfa1_0(0x20000000L, 0x0L, 0x0L);
		case 97:
			jjmatchedKind = 32;
			return jjMoveStringLiteralDfa1_0(0x1024000000000L, 0x100000080000L, 0x1004L);
		case 102:
			return jjMoveStringLiteralDfa1_0(0x100040000000000L, 0x400002000000L, 0x0L);
		case 103:
			return jjMoveStringLiteralDfa1_0(0x20400000000000L, 0x200000L, 0x0L);
		case 104:
			return jjMoveStringLiteralDfa1_0(0x200000000000000L, 0x10000000000000L, 0x0L);
		case 105:
			return jjMoveStringLiteralDfa1_0(0x0L, 0x6038L, 0x2040L);
		case 108:
			return jjMoveStringLiteralDfa1_0(0x6004000000000000L, 0x8000008000000000L, 0x0L);
		case 109:
			return jjMoveStringLiteralDfa1_0(0x80000000000000L, 0x224000000060000L, 0x8L);
		case 110:
			return jjMoveStringLiteralDfa1_0(0x400080000000000L, 0x1000000000000L, 0x0L);
		case 111:
			return jjMoveStringLiteralDfa1_0(0x18200000000000L, 0x0L, 0x0L);
		case 112:
			return jjMoveStringLiteralDfa1_0(0x400000000L, 0x0L, 0x0L);
		case 114:
			return jjMoveStringLiteralDfa1_0(0x10000000000L, 0x882000800000L, 0x0L);
		case 115:
			return jjMoveStringLiteralDfa1_0(0x1000000800000000L, 0x7c40001f88510b02L, 0x400L);
		case 116:
			return jjMoveStringLiteralDfa1_0(0x0L, 0x180000001000000L, 0x4000L);
		case 117:
			return jjMoveStringLiteralDfa1_0(0x40000000000000L, 0x4040000400L, 0x8000L);
		case 118:
			return jjMoveStringLiteralDfa1_0(0x0L, 0x20000000L, 0x0L);
		case 119:
			return jjMoveStringLiteralDfa1_0(0x100000000000L, 0x0L, 0x200L);
		case 121:
			return jjMoveStringLiteralDfa1_0(0x0L, 0x2000000000000L, 0x0L);
		case 123:
			jjmatchedKind = 6;
			return jjMoveNfa_0(0);
		case 124:
			jjmatchedKind = 27;
			return jjMoveStringLiteralDfa1_0(0x100000L, 0x0L, 0x0L);
		case 125:
			jjmatchedKind = 7;
			return jjMoveNfa_0(0);
		default:
			return jjMoveNfa_0(0);
		}
	}

	private int jjMoveStringLiteralDfa1_0(long active0, long active1, long active2) {
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(0);
		}
		switch (curChar) {
		case 38:
			if ((active0 & 0x200000L) != 0L) {
				jjmatchedKind = 21;
				jjmatchedPos = 1;
			}
			break;
		case 60:
			if ((active2 & 0x400000000000000L) != 0L) {
				jjmatchedKind = 186;
				jjmatchedPos = 1;
			}
			break;
		case 61:
			if ((active0 & 0x4000L) != 0L) {
				jjmatchedKind = 14;
				jjmatchedPos = 1;
			} else if ((active0 & 0x20000L) != 0L) {
				jjmatchedKind = 17;
				jjmatchedPos = 1;
			} else if ((active0 & 0x40000L) != 0L) {
				jjmatchedKind = 18;
				jjmatchedPos = 1;
			}
			break;
		case 62:
			if ((active2 & 0x800000000000000L) != 0L) {
				jjmatchedKind = 187;
				jjmatchedPos = 1;
			}
			break;
		case 65:
		case 97:
			return jjMoveStringLiteralDfa2_0(active0, 0xe200080200000000L, active1, 0x8080022140002L, active2, 0x80L);
		case 66:
		case 98:
			return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x100000000000L, active2, 0L);
		case 67:
		case 99:
			return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0xc000000000L, active2, 0L);
		case 68:
		case 100:
			return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x200000000000000L, active2, 0x4L);
		case 69:
		case 101:
			return jjMoveStringLiteralDfa2_0(active0, 0x2012800000000L, active1, 0x42202008c00000L, active2, 0x900L);
		case 70:
		case 102:
			if ((active1 & 0x2000L) != 0L) {
				jjmatchedKind = 77;
				jjmatchedPos = 1;
			}
			return jjMoveStringLiteralDfa2_0(active0, 0x8000000000000L, active1, 0L, active2, 0L);
		case 72:
		case 104:
			return jjMoveStringLiteralDfa2_0(active0, 0x100000000000L, active1, 0x7c00000000000000L, active2, 0L);
		case 73:
		case 105:
			return jjMoveStringLiteralDfa2_0(active0, 0x184008000000000L, active1, 0xa0000014020000L, active2, 0x600L);
		case 76:
		case 108:
			return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x400000000000L, active2, 0x1001L);
		case 78:
		case 110:
			if ((active1 & 0x4000L) != 0L) {
				jjmatchedKind = 78;
				jjmatchedPos = 1;
			}
			return jjMoveStringLiteralDfa2_0(active0, 0x40000000000000L, active1, 0x40040000080L, active2, 0x2040L);
		case 79:
		case 111:
			if ((active2 & 0x4000L) != 0L) {
				jjmatchedKind = 142;
				jjmatchedPos = 1;
			}
			return jjMoveStringLiteralDfa2_0(active0, 0x400001000000000L, active1, 0x8015830000008041L, active2, 0x18L);
		case 80:
		case 112:
			return jjMoveStringLiteralDfa2_0(active0, 0x10000000000000L, active1, 0L, active2, 0L);
		case 82:
		case 114:
			return jjMoveStringLiteralDfa2_0(active0, 0x20640400000000L, active1, 0x1200000L, active2, 0x22L);
		case 83:
		case 115:
			if ((active0 & 0x20000000000L) != 0L) {
				jjmatchedKind = 41;
				jjmatchedPos = 1;
			}
			return jjMoveStringLiteralDfa2_0(active0, 0x1004000000000L, active1, 0x38L, active2, 0x8000L);
		case 84:
		case 116:
			return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000000L, active1, 0x1e80000b00L, active2, 0L);
		case 85:
		case 117:
			return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x100010400L, active2, 0L);
		case 86:
		case 118:
			return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x80000L, active2, 0L);
		case 88:
		case 120:
			return jjMoveStringLiteralDfa2_0(active0, 0x800000000000000L, active1, 0L, active2, 0L);
		case 89:
		case 121:
			if ((active0 & 0x800000000000L) != 0L) {
				jjmatchedKind = 47;
				jjmatchedPos = 1;
			}
			break;
		case 90:
		case 122:
			if ((active1 & 0x100000000000000L) != 0L) {
				jjmatchedKind = 120;
				jjmatchedPos = 1;
			}
			break;
		case 94:
			if ((active0 & 0x20000000L) != 0L) {
				jjmatchedKind = 29;
				jjmatchedPos = 1;
			}
			break;
		case 124:
			if ((active0 & 0x100000L) != 0L) {
				jjmatchedKind = 20;
				jjmatchedPos = 1;
			}
			break;
		default:
			break;
		}
		return jjMoveNfa_0(1);
	}

	private int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1, long old2, long active2) {
		if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) {
			return jjMoveNfa_0(1);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(1);
		}
		switch (curChar) {
		case 53:
			if ((active1 & 0x200000000000000L) != 0L) {
				jjmatchedKind = 121;
				jjmatchedPos = 2;
			}
			break;
		case 65:
		case 97:
			return jjMoveStringLiteralDfa3_0(active0, 0x20000000000000L, active1, 0xfc0200c000000040L, active2, 0L);
		case 66:
		case 98:
			return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x100000008L, active2, 0L);
		case 67:
		case 99:
			if ((active0 & 0x1000000000000L) != 0L) {
				jjmatchedKind = 48;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x40040000000000L, active2, 0L);
		case 68:
		case 100:
			if ((active2 & 0x4L) != 0L) {
				jjmatchedKind = 130;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0x210000000000L, active1, 0x40000000L, active2, 0L);
		case 69:
		case 101:
			return jjMoveStringLiteralDfa3_0(active0, 0x100400000000L, active1, 0L, active2, 0x21L);
		case 70:
		case 102:
			return jjMoveStringLiteralDfa3_0(active0, 0x8000000000000L, active1, 0L, active2, 0x800L);
		case 71:
		case 103:
			if ((active1 & 0x80000L) != 0L) {
				jjmatchedKind = 83;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x800000L, active2, 0L);
		case 73:
		case 105:
			return jjMoveStringLiteralDfa3_0(active0, 0x840000000000000L, active1, 0x200000000400L, active2, 0x8000L);
		case 75:
		case 107:
			if ((active0 & 0x4000000000L) != 0L) {
				jjmatchedKind = 38;
				jjmatchedPos = 2;
			}
			break;
		case 76:
		case 108:
			if ((active2 & 0x1000L) != 0L) {
				jjmatchedKind = 140;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0x100000800000000L, active1, 0x22000010L, active2, 0x500L);
		case 77:
		case 109:
			if ((active1 & 0x10000L) != 0L) {
				jjmatchedKind = 80;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0x4080000000000L, active1, 0x80000000100002L, active2, 0L);
		case 78:
		case 110:
			if ((active1 & 0x20000L) != 0L) {
				jjmatchedKind = 81;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0x6080001000000000L, active1, 0x240b0014000020L, active2, 0L);
		case 79:
		case 111:
			return jjMoveStringLiteralDfa3_0(active0, 0x440000000000L, active1, 0x400000200080L, active2, 0x2L);
		case 80:
		case 112:
			return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x2000400000L, active2, 0x10L);
		case 82:
		case 114:
			if ((active0 & 0x1000000000000000L) != 0L) {
				jjmatchedKind = 60;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x1e88000b00L, active2, 0L);
		case 83:
		case 115:
			if ((active1 & 0x100000000000L) != 0L) {
				jjmatchedKind = 108;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0x200a200000000L, active1, 0L, active2, 0x40L);
		case 84:
		case 116:
			if ((active0 & 0x400000000000000L) != 0L) {
				jjmatchedKind = 58;
				jjmatchedPos = 2;
			}
			return jjMoveStringLiteralDfa3_0(active0, 0x8010000000000000L, active1, 0L, active2, 0x2280L);
		case 85:
		case 117:
			return jjMoveStringLiteralDfa3_0(active0, 0L, active1, 0x10800001008001L, active2, 0L);
		case 86:
		case 118:
			return jjMoveStringLiteralDfa3_0(active0, 0x200000000000000L, active1, 0L, active2, 0x8L);
		case 87:
		case 119:
			if ((active1 & 0x1000000000000L) != 0L) {
				jjmatchedKind = 112;
				jjmatchedPos = 2;
			}
			break;
		case 88:
		case 120:
			if ((active1 & 0x40000L) != 0L) {
				jjmatchedKind = 82;
				jjmatchedPos = 2;
			}
			break;
		case 89:
		case 121:
			if ((active1 & 0x8000000000000L) != 0L) {
				jjmatchedKind = 115;
				jjmatchedPos = 2;
			}
			break;
		default:
			break;
		}
		return jjMoveNfa_0(2);
	}

	private int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1, long old2, long active2) {
		if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) {
			return jjMoveNfa_0(2);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(2);
		}
		switch (curChar) {
		case 49:
			if ((active1 & 0x400000000000000L) != 0L) {
				jjmatchedKind = 122;
				jjmatchedPos = 3;
			}
			break;
		case 50:
			return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x1800000000000000L, active2, 0L);
		case 51:
			return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2000000000000000L, active2, 0L);
		case 53:
			return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x4000000000000000L, active2, 0L);
		case 65:
		case 97:
			if ((active2 & 0x80L) != 0L) {
				jjmatchedKind = 135;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0x8000000000000000L, active1, 0x1000400000L, active2, 0x821L);
		case 66:
		case 98:
			return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000000L, active2, 0L);
		case 67:
		case 99:
			if ((active0 & 0x2000000000000L) != 0L) {
				jjmatchedKind = 49;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0x2000000000L, active1, 0x10000000000L, active2, 0L);
		case 68:
		case 100:
			if ((active1 & 0x400L) != 0L) {
				jjmatchedKind = 74;
				jjmatchedPos = 3;
			} else if ((active1 & 0x4000000L) != 0L) {
				jjmatchedKind = 90;
				jjmatchedPos = 3;
			} else if ((active1 & 0x80000000000L) != 0L) {
				jjmatchedKind = 107;
				jjmatchedPos = 3;
			} else if ((active1 & 0x8000000000000000L) != 0L) {
				jjmatchedKind = 127;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x10000180L, active2, 0L);
		case 69:
		case 101:
			if ((active0 & 0x200000000L) != 0L) {
				jjmatchedKind = 33;
				jjmatchedPos = 3;
			} else if ((active1 & 0x1000000L) != 0L) {
				jjmatchedKind = 88;
				jjmatchedPos = 3;
			} else if ((active2 & 0x8L) != 0L) {
				jjmatchedKind = 131;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0x280800000000L, active1, 0x80000440800002L, active2, 0x540L);
		case 70:
		case 102:
			return jjMoveStringLiteralDfa4_0(active0, 0x400000000L, active1, 0L, active2, 0L);
		case 71:
		case 103:
			if ((active0 & 0x2000000000000000L) != 0L) {
				jjmatchedKind = 61;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000000L, active1, 0L, active2, 0L);
		case 72:
		case 104:
			if ((active2 & 0x200L) != 0L) {
				jjmatchedKind = 137;
				jjmatchedPos = 3;
			}
			break;
		case 73:
		case 105:
			return jjMoveStringLiteralDfa4_0(active0, 0x214000000000000L, active1, 0x10L, active2, 0L);
		case 76:
		case 108:
			if ((active1 & 0x200000000000L) != 0L) {
				jjmatchedKind = 109;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x2080000248L, active2, 0L);
		case 77:
		case 109:
			if ((active0 & 0x40000000000L) != 0L) {
				jjmatchedKind = 42;
				jjmatchedPos = 3;
			}
			break;
		case 78:
		case 110:
			return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x800000008001L, active2, 0x8000L);
		case 79:
		case 111:
			if ((active2 & 0x2000L) != 0L) {
				jjmatchedKind = 141;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0x40000000000000L, active1, 0x40440000000000L, active2, 0L);
		case 80:
		case 112:
			if ((active2 & 0x2L) != 0L) {
				jjmatchedKind = 129;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0x20000000000000L, active1, 0x100000L, active2, 0L);
		case 82:
		case 114:
			if ((active1 & 0x2000000000000L) != 0L) {
				jjmatchedKind = 113;
				jjmatchedPos = 3;
			}
			return jjMoveStringLiteralDfa4_0(active0, 0x100000000000L, active1, 0x10000000000000L, active2, 0L);
		case 83:
		case 115:
			return jjMoveStringLiteralDfa4_0(active0, 0x808001000000000L, active1, 0xc302000000L, active2, 0L);
		case 84:
		case 116:
			return jjMoveStringLiteralDfa4_0(active0, 0x100008000000000L, active1, 0x4020000000000L, active2, 0L);
		case 85:
		case 117:
			return jjMoveStringLiteralDfa4_0(active0, 0x80410000000000L, active1, 0x20000020200820L, active2, 0L);
		case 86:
		case 118:
			return jjMoveStringLiteralDfa4_0(active0, 0L, active1, 0x8000000L, active2, 0L);
		case 89:
		case 121:
			if ((active2 & 0x10L) != 0L) {
				jjmatchedKind = 132;
				jjmatchedPos = 3;
			}
			break;
		default:
			break;
		}
		return jjMoveNfa_0(3);
	}

	private int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1, long old2, long active2) {
		if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) {
			return jjMoveNfa_0(3);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(3);
		}
		switch (curChar) {
		case 49:
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x4000000000000000L, active2, 0L);
		case 50:
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800000000000000L, active2, 0L);
		case 53:
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x1000000000000000L, active2, 0L);
		case 56:
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x2000000000000000L, active2, 0L);
		case 65:
		case 97:
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x32000000208L, active2, 0L);
		case 67:
		case 99:
			return jjMoveStringLiteralDfa5_0(active0, 0x10800000000L, active1, 0L, active2, 0L);
		case 68:
		case 100:
			if ((active0 & 0x80000000000L) != 0L) {
				jjmatchedKind = 43;
				jjmatchedPos = 4;
			} else if ((active1 & 0x1L) != 0L) {
				jjmatchedKind = 64;
				jjmatchedPos = 4;
			} else if ((active1 & 0x800000000000L) != 0L) {
				jjmatchedKind = 111;
				jjmatchedPos = 4;
			}
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x40000000000L, active2, 0L);
		case 69:
		case 101:
			if ((active0 & 0x100000000000L) != 0L) {
				jjmatchedKind = 44;
				jjmatchedPos = 4;
			} else if ((active1 & 0x80L) != 0L) {
				jjmatchedKind = 71;
				jjmatchedPos = 4;
			} else if ((active1 & 0x2000000L) != 0L) {
				jjmatchedKind = 89;
				jjmatchedPos = 4;
			} else if ((active1 & 0x4000000000L) != 0L) {
				jjmatchedKind = 102;
				jjmatchedPos = 4;
			} else if ((active1 & 0x8000000000L) != 0L) {
				jjmatchedKind = 103;
				jjmatchedPos = 4;
			}
			return jjMoveStringLiteralDfa5_0(active0, 0x108000000000000L, active1, 0x8a0000040L, active2, 0L);
		case 70:
		case 102:
			if ((active1 & 0x40000000L) != 0L) {
				jjmatchedKind = 94;
				jjmatchedPos = 4;
			}
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x1000000000L, active2, 0L);
		case 71:
		case 103:
			if ((active2 & 0x8000L) != 0L) {
				jjmatchedKind = 143;
				jjmatchedPos = 4;
			}
			break;
		case 72:
		case 104:
			if ((active0 & 0x20000000000000L) != 0L) {
				jjmatchedKind = 53;
				jjmatchedPos = 4;
			} else if ((active1 & 0x4000000000000L) != 0L) {
				jjmatchedKind = 114;
				jjmatchedPos = 4;
			}
			break;
		case 73:
		case 105:
			return jjMoveStringLiteralDfa5_0(active0, 0x8400000000L, active1, 0x18000000L, active2, 0L);
		case 76:
		case 108:
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x100000L, active2, 0L);
		case 77:
		case 109:
			return jjMoveStringLiteralDfa5_0(active0, 0x4000000000000000L, active1, 0x20L, active2, 0L);
		case 78:
		case 110:
			if ((active0 & 0x40000000000000L) != 0L) {
				jjmatchedKind = 54;
				jjmatchedPos = 4;
			}
			return jjMoveStringLiteralDfa5_0(active0, 0x200000000000000L, active1, 0x40000400000000L, active2, 0x400L);
		case 79:
		case 111:
			return jjMoveStringLiteralDfa5_0(active0, 0x10000000000000L, active1, 0L, active2, 0L);
		case 80:
		case 112:
			if ((active0 & 0x400000000000L) != 0L) {
				jjmatchedKind = 46;
				jjmatchedPos = 4;
			}
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x200000L, active2, 0L);
		case 82:
		case 114:
			if ((active0 & 0x200000000000L) != 0L) {
				jjmatchedKind = 45;
				jjmatchedPos = 4;
			} else if ((active1 & 0x400000000000L) != 0L) {
				jjmatchedKind = 110;
				jjmatchedPos = 4;
			} else if ((active2 & 0x1L) != 0L) {
				jjmatchedKind = 128;
				jjmatchedPos = 4;
			}
			return jjMoveStringLiteralDfa5_0(active0, 0x2000000000L, active1, 0x400000L, active2, 0x40L);
		case 83:
		case 115:
			if ((active0 & 0x80000000000000L) != 0L) {
				jjmatchedKind = 55;
				jjmatchedPos = 4;
			} else if ((active1 & 0x10000000000000L) != 0L) {
				jjmatchedKind = 116;
				jjmatchedPos = 4;
			}
			break;
		case 84:
		case 116:
			if ((active0 & 0x4000000000000L) != 0L) {
				jjmatchedKind = 50;
				jjmatchedPos = 4;
			} else if ((active1 & 0x100L) != 0L) {
				jjmatchedKind = 72;
				jjmatchedPos = 4;
			} else if ((active1 & 0x8000L) != 0L) {
				jjmatchedKind = 79;
				jjmatchedPos = 4;
			}
			return jjMoveStringLiteralDfa5_0(active0, 0x8800001000000000L, active1, 0x20000300000012L, active2, 0x120L);
		case 85:
		case 117:
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x800L, active2, 0x800L);
		case 88:
		case 120:
			if ((active1 & 0x800000L) != 0L) {
				jjmatchedKind = 87;
				jjmatchedPos = 4;
			}
			break;
		case 90:
		case 122:
			return jjMoveStringLiteralDfa5_0(active0, 0L, active1, 0x80000000000000L, active2, 0L);
		default:
			break;
		}
		return jjMoveNfa_0(4);
	}

	private int jjMoveStringLiteralDfa5_0(long old0, long active0, long old1, long active1, long old2, long active2) {
		if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) {
			return jjMoveNfa_0(4);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(4);
		}
		switch (curChar) {
		case 50:
			if ((active1 & 0x4000000000000000L) != 0L) {
				jjmatchedKind = 126;
				jjmatchedPos = 5;
			}
			break;
		case 52:
			if ((active1 & 0x800000000000000L) != 0L) {
				jjmatchedKind = 123;
				jjmatchedPos = 5;
			} else if ((active1 & 0x2000000000000000L) != 0L) {
				jjmatchedKind = 125;
				jjmatchedPos = 5;
			}
			break;
		case 54:
			if ((active1 & 0x1000000000000000L) != 0L) {
				jjmatchedKind = 124;
				jjmatchedPos = 5;
			}
			break;
		case 65:
		case 97:
			return jjMoveStringLiteralDfa6_0(active0, 0x4000000000000000L, active1, 0x200400000L, active2, 0L);
		case 67:
		case 99:
			return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x2008000000L, active2, 0L);
		case 68:
		case 100:
			return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x40000400000000L, active2, 0L);
		case 69:
		case 101:
			if ((active1 & 0x100000L) != 0L) {
				jjmatchedKind = 84;
				jjmatchedPos = 5;
			} else if ((active2 & 0x20L) != 0L) {
				jjmatchedKind = 133;
				jjmatchedPos = 5;
			} else if ((active2 & 0x100L) != 0L) {
				jjmatchedKind = 136;
				jjmatchedPos = 5;
			}
			return jjMoveStringLiteralDfa6_0(active0, 0x10000000000L, active1, 0x20040000000032L, active2, 0L);
		case 70:
		case 102:
			return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x800000000L, active2, 0L);
		case 71:
		case 103:
			if ((active0 & 0x200000000000000L) != 0L) {
				jjmatchedKind = 57;
				jjmatchedPos = 5;
			}
			break;
		case 73:
		case 105:
			return jjMoveStringLiteralDfa6_0(active0, 0x2000000000L, active1, 0x20000000800L, active2, 0L);
		case 76:
		case 108:
			return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0L, active2, 0x800L);
		case 78:
		case 110:
			if ((active1 & 0x80000000L) != 0L) {
				jjmatchedKind = 95;
				jjmatchedPos = 5;
			}
			return jjMoveStringLiteralDfa6_0(active0, 0x10008000000000L, active1, 0x10000208L, active2, 0L);
		case 79:
		case 111:
			return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x80000000000000L, active2, 0L);
		case 82:
		case 114:
			if ((active0 & 0x100000000000000L) != 0L) {
				jjmatchedKind = 56;
				jjmatchedPos = 5;
			} else if ((active1 & 0x100000000L) != 0L) {
				jjmatchedKind = 96;
				jjmatchedPos = 5;
			}
			return jjMoveStringLiteralDfa6_0(active0, 0x1000000000L, active1, 0L, active2, 0L);
		case 83:
		case 115:
			if ((active0 & 0x800000000000000L) != 0L) {
				jjmatchedKind = 59;
				jjmatchedPos = 5;
			} else if ((active1 & 0x20000000L) != 0L) {
				jjmatchedKind = 93;
				jjmatchedPos = 5;
			}
			return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x40L, active2, 0L);
		case 84:
		case 116:
			if ((active0 & 0x800000000L) != 0L) {
				jjmatchedKind = 35;
				jjmatchedPos = 5;
			} else if ((active0 & 0x8000000000000L) != 0L) {
				jjmatchedKind = 51;
				jjmatchedPos = 5;
			} else if ((active1 & 0x10000000000L) != 0L) {
				jjmatchedKind = 104;
				jjmatchedPos = 5;
			} else if ((active2 & 0x40L) != 0L) {
				jjmatchedKind = 134;
				jjmatchedPos = 5;
			} else if ((active2 & 0x400L) != 0L) {
				jjmatchedKind = 138;
				jjmatchedPos = 5;
			}
			return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x1000000000L, active2, 0L);
		case 88:
		case 120:
			if ((active0 & 0x400000000L) != 0L) {
				jjmatchedKind = 34;
				jjmatchedPos = 5;
			}
			break;
		case 89:
		case 121:
			return jjMoveStringLiteralDfa6_0(active0, 0x8000000000000000L, active1, 0L, active2, 0L);
		case 95:
			return jjMoveStringLiteralDfa6_0(active0, 0L, active1, 0x200000L, active2, 0L);
		default:
			break;
		}
		return jjMoveNfa_0(5);
	}

	private int jjMoveStringLiteralDfa6_0(long old0, long active0, long old1, long active1, long old2, long active2) {
		if (((active0 &= old0) | (active1 &= old1) | (active2 &= old2)) == 0L) {
			return jjMoveNfa_0(5);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(5);
		}
		switch (curChar) {
		case 65:
		case 97:
			return jjMoveStringLiteralDfa7_0(active0, 0x10000000000000L, active1, 0L, active2);
		case 66:
		case 98:
			return jjMoveStringLiteralDfa7_0(active0, 0x2000000000L, active1, 0L, active2);
		case 67:
		case 99:
			return jjMoveStringLiteralDfa7_0(active0, 0x8000000000L, active1, 0x200040L, active2);
		case 68:
		case 100:
			if ((active0 & 0x10000000000L) != 0L) {
				jjmatchedKind = 40;
				jjmatchedPos = 6;
			} else if ((active1 & 0x800L) != 0L) {
				jjmatchedKind = 75;
				jjmatchedPos = 6;
			}
			break;
		case 69:
		case 101:
			if ((active1 & 0x8000000L) != 0L) {
				jjmatchedKind = 91;
				jjmatchedPos = 6;
			} else if ((active1 & 0x2000000000L) != 0L) {
				jjmatchedKind = 101;
				jjmatchedPos = 6;
			}
			return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x1000000000L, active2);
		case 71:
		case 103:
			if ((active1 & 0x200L) != 0L) {
				jjmatchedKind = 73;
				jjmatchedPos = 6;
			}
			return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x10000000L, active2);
		case 75:
		case 107:
			if ((active1 & 0x8L) != 0L) {
				jjmatchedKind = 67;
				jjmatchedPos = 6;
			}
			break;
		case 78:
		case 110:
			return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x80020000000000L, active2);
		case 79:
		case 111:
			return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x800000000L, active2);
		case 80:
		case 112:
			return jjMoveStringLiteralDfa7_0(active0, 0x8000000000000000L, active1, 0L, active2);
		case 82:
		case 114:
			return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x200000032L, active2);
		case 83:
		case 115:
			if ((active1 & 0x400000000L) != 0L) {
				jjmatchedKind = 98;
				jjmatchedPos = 6;
			} else if ((active1 & 0x20000000000000L) != 0L) {
				jjmatchedKind = 117;
				jjmatchedPos = 6;
			} else if ((active1 & 0x40000000000000L) != 0L) {
				jjmatchedKind = 118;
				jjmatchedPos = 6;
			}
			break;
		case 84:
		case 116:
			if ((active2 & 0x800L) != 0L) {
				jjmatchedKind = 139;
				jjmatchedPos = 6;
			}
			return jjMoveStringLiteralDfa7_0(active0, 0x4000000000000000L, active1, 0x400000L, active2);
		case 85:
		case 117:
			return jjMoveStringLiteralDfa7_0(active0, 0x1000000000L, active1, 0L, active2);
		case 95:
			return jjMoveStringLiteralDfa7_0(active0, 0L, active1, 0x40000000000L, active2);
		default:
			break;
		}
		return jjMoveNfa_0(6);
	}

	private int jjMoveStringLiteralDfa7_0(long old0, long active0, long old1, long active1, long old2) {
		if (((active0 &= old0) | (active1 &= old1)) == 0L) {
			return jjMoveNfa_0(6);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(6);
		}
		switch (curChar) {
		case 65:
		case 97:
			return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x10L);
		case 67:
		case 99:
			return jjMoveStringLiteralDfa8_0(active0, 0x4000001000000000L, active1, 0L);
		case 69:
		case 101:
			if ((active0 & 0x2000000000L) != 0L) {
				jjmatchedKind = 37;
				jjmatchedPos = 7;
			} else if ((active0 & 0x8000000000000000L) != 0L) {
				jjmatchedKind = 63;
				jjmatchedPos = 7;
			} else if ((active1 & 0x40L) != 0L) {
				jjmatchedKind = 70;
				jjmatchedPos = 7;
			} else if ((active1 & 0x80000000000000L) != 0L) {
				jjmatchedKind = 119;
				jjmatchedPos = 7;
			}
			break;
		case 70:
		case 102:
			return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x40000000000L);
		case 73:
		case 105:
			return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x20L);
		case 76:
		case 108:
			if ((active0 & 0x10000000000000L) != 0L) {
				jjmatchedKind = 52;
				jjmatchedPos = 7;
			}
			break;
		case 77:
		case 109:
			if ((active1 & 0x2L) != 0L) {
				jjmatchedKind = 65;
				jjmatchedPos = 7;
			}
			break;
		case 79:
		case 111:
			return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x600000L);
		case 82:
		case 114:
			if ((active1 & 0x1000000000L) != 0L) {
				jjmatchedKind = 100;
				jjmatchedPos = 7;
			}
			return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x800000000L);
		case 83:
		case 115:
			if ((active1 & 0x10000000L) != 0L) {
				jjmatchedKind = 92;
				jjmatchedPos = 7;
			} else if ((active1 & 0x20000000000L) != 0L) {
				jjmatchedKind = 105;
				jjmatchedPos = 7;
			}
			break;
		case 84:
		case 116:
			if ((active0 & 0x8000000000L) != 0L) {
				jjmatchedKind = 39;
				jjmatchedPos = 7;
			}
			return jjMoveStringLiteralDfa8_0(active0, 0L, active1, 0x200000000L);
		default:
			break;
		}
		return jjMoveNfa_0(7);
	}

	private int jjMoveStringLiteralDfa8_0(long old0, long active0, long old1, long active1) {
		if (((active0 &= old0) | (active1 &= old1)) == 0L) {
			return jjMoveNfa_0(7);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(7);
		}
		switch (curChar) {
		case 67:
		case 99:
			if ((active1 & 0x20L) != 0L) {
				jjmatchedKind = 69;
				jjmatchedPos = 8;
			}
			break;
		case 69:
		case 101:
			if ((active1 & 0x800000000L) != 0L) {
				jjmatchedKind = 99;
				jjmatchedPos = 8;
			}
			break;
		case 72:
		case 104:
			return jjMoveStringLiteralDfa9_0(active0, 0x4000000000000000L, active1, 0L);
		case 76:
		case 108:
			if ((active1 & 0x10L) != 0L) {
				jjmatchedKind = 68;
				jjmatchedPos = 8;
			}
			break;
		case 78:
		case 110:
			return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x200000L);
		case 79:
		case 111:
			return jjMoveStringLiteralDfa9_0(active0, 0L, active1, 0x40000000000L);
		case 82:
		case 114:
			if ((active1 & 0x400000L) != 0L) {
				jjmatchedKind = 86;
				jjmatchedPos = 8;
			}
			break;
		case 83:
		case 115:
			if ((active1 & 0x200000000L) != 0L) {
				jjmatchedKind = 97;
				jjmatchedPos = 8;
			}
			break;
		case 84:
		case 116:
			if ((active0 & 0x1000000000L) != 0L) {
				jjmatchedKind = 36;
				jjmatchedPos = 8;
			}
			break;
		default:
			break;
		}
		return jjMoveNfa_0(8);
	}

	private int jjMoveStringLiteralDfa9_0(long old0, long active0, long old1, long active1) {
		if (((active0 &= old0) | (active1 &= old1)) == 0L) {
			return jjMoveNfa_0(8);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(8);
		}
		switch (curChar) {
		case 67:
		case 99:
			return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x200000L);
		case 69:
		case 101:
			return jjMoveStringLiteralDfa10_0(active0, 0x4000000000000000L, active1, 0L);
		case 82:
		case 114:
			return jjMoveStringLiteralDfa10_0(active0, 0L, active1, 0x40000000000L);
		default:
			break;
		}
		return jjMoveNfa_0(9);
	}

	private int jjMoveStringLiteralDfa10_0(long old0, long active0, long old1, long active1) {
		if (((active0 &= old0) | (active1 &= old1)) == 0L) {
			return jjMoveNfa_0(9);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(9);
		}
		switch (curChar) {
		case 65:
		case 97:
			return jjMoveStringLiteralDfa11_0(active0, active1, 0x200000L);
		case 83:
		case 115:
			if ((active0 & 0x4000000000000000L) != 0L) {
				jjmatchedKind = 62;
				jjmatchedPos = 10;
			}
			break;
		case 95:
			return jjMoveStringLiteralDfa11_0(active0, active1, 0x40000000000L);
		default:
			break;
		}
		return jjMoveNfa_0(10);
	}

	private int jjMoveStringLiteralDfa11_0(long old0, long old1, long active1) {
		if (((active1 &= old1)) == 0L) {
			return jjMoveNfa_0(10);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(10);
		}
		switch (curChar) {
		case 84:
		case 116:
			if ((active1 & 0x200000L) != 0L) {
				jjmatchedKind = 85;
				jjmatchedPos = 11;
			}
			break;
		case 85:
		case 117:
			return jjMoveStringLiteralDfa12_0(active1, 0x40000000000L);
		default:
			break;
		}
		return jjMoveNfa_0(11);
	}

	private int jjMoveStringLiteralDfa12_0(long old1, long active1) {
		if (((active1 &= old1)) == 0L) {
			return jjMoveNfa_0(11);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(11);
		}
		switch (curChar) {
		case 82:
		case 114:
			return jjMoveStringLiteralDfa13_0(active1, 0x40000000000L);
		default:
			break;
		}
		return jjMoveNfa_0(12);
	}

	private int jjMoveStringLiteralDfa13_0(long old1, long active1) {
		if (((active1 &= old1)) == 0L) {
			return jjMoveNfa_0(12);
		}
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			return jjMoveNfa_0(12);
		}
		switch (curChar) {
		case 73:
		case 105:
			if ((active1 & 0x40000000000L) != 0L) {
				jjmatchedKind = 106;
				jjmatchedPos = 13;
			}
			break;
		default:
			break;
		}
		return jjMoveNfa_0(13);
	}

	static final long[] jjbitVec0 = {
			0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
	};
	static final long[] jjbitVec2 = {
			0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
	};
	static final long[] jjbitVec3 = {
			0xfffe7000fffffff6L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x5e00000000ffffffL
	};
	static final long[] jjbitVec4 = {
			0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
	};
	static final long[] jjbitVec5 = {
			0x0L, 0xbfff000000000000L, 0xffffffffffffffffL, 0xffffffffffffffffL
	};
	static final long[] jjbitVec6 = {
			0x3000L, 0xffff000000000000L, 0xffffffffffffffffL, 0xffffffffffffffffL
	};
	static final long[] jjbitVec7 = {
			0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L
	};
	static final long[] jjbitVec8 = {
			0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffL
	};
	static final long[] jjbitVec9 = {
			0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffff00000000ffffL
	};
	static final long[] jjbitVec10 = {
			0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0x3fffffffffffffffL
	};
	static final long[] jjbitVec11 = {
			0x0L, 0x0L, 0x80000000000000L, 0xff7fffffff7fffffL
	};
	static final long[] jjbitVec12 = {
			0xffffffffffffffffL, 0xbfffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
	};
	static final long[] jjbitVec13 = {
			0x8000000000003000L, 0xffff000000000001L, 0xffffffffffffffffL, 0xffffffffffffffffL
	};

	private int jjMoveNfa_0(int curPos) {
		int strKind = jjmatchedKind;
		int strPos = jjmatchedPos;
		int seenUpto;
		input_stream.backup(seenUpto = curPos + 1);
		try {
			curChar = input_stream.readChar();
		} catch (java.io.IOException e) {
			throw new Error("Internal Error");
		}
		curPos = 0;
		int startsAt = 0;
		jjnewStateCnt = 157;
		int i = 1;
		jjstateSet[0] = 0;
		int kind = 0x7fffffff;
		for (;;) {
			if (++jjround == 0x7fffffff) {
				ReInitRounds();
			}
			if (curChar < 64) {
				kind = jjMoveNfa_0_curCharLessThan64(startsAt, i, kind);
			} else if (curChar < 128) {
				kind = jjMoveNfa_0_curCharLessThan128(startsAt, i, kind);
			} else {
				kind = jjMoveNfa_0_curChar128AndAbove(startsAt, i, kind);
			}
			if (kind != 0x7fffffff) {
				jjmatchedKind = kind;
				jjmatchedPos = curPos;
				kind = 0x7fffffff;
			}
			++curPos;
			if ((i = jjnewStateCnt) == (startsAt = 157 - (jjnewStateCnt = startsAt))) {
				break;
			}
			try {
				curChar = input_stream.readChar();
			} catch (java.io.IOException e) {
				break;
			}
		}
		if (jjmatchedPos > strPos) {
			return curPos;
		}

		int toRet = Math.max(curPos, seenUpto);

		if (curPos < toRet) {
			for (i = toRet - curPos; i-- > 0;) {
				try {
					curChar = input_stream.readChar();
				} catch (java.io.IOException e) {
					throw new Error("Internal Error : Please send a bug report.");
				}
			}
		}

		if (jjmatchedPos < strPos) {
			jjmatchedKind = strKind;
			jjmatchedPos = strPos;
		} else if (jjmatchedPos == strPos && jjmatchedKind > strKind) {
			jjmatchedKind = strKind;
		}

		return toRet;
	}

	private int jjMoveNfa_0_curChar128AndAbove(int startsAt, int i, int kind) {
		int hiByte = (curChar >> 8);
		int i1 = hiByte >> 6;
		long l1 = 1L << (hiByte & 077);
		int i2 = (curChar & 0xff) >> 6;
		long l2 = 1L << (curChar & 077);
		do {
			switch (jjstateSet[--i]) {
			case 0:
				if (jjCanMove_1(hiByte, i1, i2, l1, l2)) {
					jjCheckNAddStates(58, 63);
				}
				break;
			case 2:
				if (!jjCanMove_0(hiByte, i1, i2, l1, l2)) {
					break;
				}
				if (kind > 3) {
					kind = 3;
				}
				jjstateSet[jjnewStateCnt++] = 2;
				break;
			case 13:
				if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
					jjAddStates(67, 68);
				}
				break;
			case 16:
				if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) {
					break;
				}
				if (kind > 147) {
					kind = 147;
				} {
				jjCheckNAddTwoStates(17, 18);
			}
				break;
			case 17:
				if (jjCanMove_2(hiByte, i1, i2, l1, l2)) {
					jjCheckNAddTwoStates(17, 18);
				}
				break;
			case 18:
				if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 147) {
					kind = 147;
				}
				break;
			case 21:
				if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) {
					break;
				}
				if (kind > 148) {
					kind = 148;
				} {
				jjCheckNAdd(22);
			}
				break;
			case 22:
				if (!jjCanMove_2(hiByte, i1, i2, l1, l2)) {
					break;
				}
				if (kind > 148) {
					kind = 148;
				} {
				jjCheckNAdd(22);
			}
				break;
			case 24:
				if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) {
					break;
				}
				if (kind > 149) {
					kind = 149;
				} {
				jjCheckNAdd(25);
			}
				break;
			case 25:
				if (!jjCanMove_2(hiByte, i1, i2, l1, l2)) {
					break;
				}
				if (kind > 149) {
					kind = 149;
				} {
				jjCheckNAdd(25);
			}
				break;
			case 31:
				if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
					jjAddStates(23, 25);
				}
				break;
			case 36:
				if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
					jjAddStates(20, 22);
				}
				break;
			case 42:
				if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
					jjAddStates(28, 31);
				}
				break;
			case 53:
				if (jjCanMove_0(hiByte, i1, i2, l1, l2)) {
					jjAddStates(34, 37);
				}
				break;
			case 72:
				if (jjCanMove_2(hiByte, i1, i2, l1, l2)) {
					jjCheckNAddTwoStates(72, 73);
				}
				break;
			case 73:
				if (jjCanMove_2(hiByte, i1, i2, l1, l2)) {
					jjCheckNAdd(74);
				}
				break;
			case 75:
				if (jjCanMove_2(hiByte, i1, i2, l1, l2)) {
					jjCheckNAddTwoStates(75, 76);
				}
				break;
			case 76:
				if (jjCanMove_2(hiByte, i1, i2, l1, l2)) {
					jjCheckNAdd(77);
				}
				break;
			case 78:
				if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) {
					break;
				}
				if (kind > 146) {
					kind = 146;
				} {
				jjCheckNAddStates(44, 47);
			}
				break;
			case 79:
				if (jjCanMove_2(hiByte, i1, i2, l1, l2)) {
					jjCheckNAddStates(44, 47);
				}
				break;
			case 80:
				if (jjCanMove_2(hiByte, i1, i2, l1, l2) && kind > 146) {
					kind = 146;
				}
				break;
			default:
				break;
			}
		} while (i != startsAt);
		return kind;
	}

	private int jjMoveNfa_0_curCharLessThan128(int startsAt, int i, int kind) {
		long l = 1L << (curChar & 077);
		do {
			switch (jjstateSet[--i]) {
			case 0:
				if ((0x7fffffe07fffffeL & l) != 0L) {
					jjCheckNAddStates(58, 63);
				} else if (curChar == 64) {
					jjCheckNAdd(27);
				} else if (curChar == 95) {
					jjstateSet[jjnewStateCnt++] = 15;
				} else if (curChar == 91) {
					jjAddStates(26, 27);
				}
				if ((0x20000000200L & l) != 0L) {
					jjAddStates(64, 66);
				} else if ((0x20000000200000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 10;
				}
				break;
			case 2:
				if (kind > 3) {
					kind = 3;
				}
				jjstateSet[jjnewStateCnt++] = 2;
				break;
			case 6:
				if (curChar == 91) {
					jjAddStates(26, 27);
				}
				break;
			case 8:
				if (curChar == 93 && kind > 31) {
					kind = 31;
				}
				break;
			case 9:
				if ((0x20000000200L & l) != 0L && kind > 76) {
					kind = 76;
				}
				break;
			case 10:
			case 70:
				if ((0x4000000040000L & l) != 0L) {
					jjCheckNAdd(9);
				}
				break;
			case 11:
				if ((0x20000000200000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 10;
				}
				break;
			case 13:
				if ((0xc7fffffeafffffffL & l) != 0L) {
					jjAddStates(67, 68);
				}
				break;
			case 16:
				if ((0x7fffffe87fffffeL & l) == 0L) {
					break;
				}
				if (kind > 147) {
					kind = 147;
				} {
				jjCheckNAddTwoStates(17, 18);
			}
				break;
			case 17:
				if ((0x7fffffe87fffffeL & l) != 0L) {
					jjCheckNAddTwoStates(17, 18);
				}
				break;
			case 18:
				if ((0x7fffffe87fffffeL & l) != 0L && kind > 147) {
					kind = 147;
				}
				break;
			case 19:
				if (curChar == 95) {
					jjstateSet[jjnewStateCnt++] = 15;
				}
				break;
			case 21:
			case 22:
				if ((0x7fffffe87fffffeL & l) == 0L) {
					break;
				}
				if (kind > 148) {
					kind = 148;
				} {
				jjCheckNAdd(22);
			}
				break;
			case 24:
			case 25:
				if ((0x7fffffe87fffffeL & l) == 0L) {
					break;
				}
				if (kind > 149) {
					kind = 149;
				} {
				jjCheckNAdd(25);
			}
				break;
			case 26:
				if (curChar == 64) {
					jjCheckNAdd(27);
				}
				break;
			case 27:
				if ((0x7fffffe07fffffeL & l) == 0L) {
					break;
				}
				if (kind > 150) {
					kind = 150;
				} {
				jjCheckNAddTwoStates(27, 28);
			}
				break;
			case 29:
				if ((0x7fffffe07fffffeL & l) == 0L) {
					break;
				}
				if (kind > 150) {
					kind = 150;
				} {
				jjCheckNAddTwoStates(28, 29);
			}
				break;
			case 31:
				if ((0xffffffffefffffffL & l) != 0L) {
					jjCheckNAddStates(23, 25);
				}
				break;
			case 32:
				if (curChar == 92) {
					jjstateSet[jjnewStateCnt++] = 33;
				}
				break;
			case 33:
				if ((0x14404410000000L & l) != 0L) {
					jjCheckNAddStates(23, 25);
				}
				break;
			case 36:
				if ((0xffffffffefffffffL & l) != 0L) {
					jjCheckNAddStates(20, 22);
				}
				break;
			case 37:
				if (curChar == 92) {
					jjstateSet[jjnewStateCnt++] = 38;
				}
				break;
			case 38:
				if ((0x14404410000000L & l) != 0L) {
					jjCheckNAddStates(20, 22);
				}
				break;
			case 42:
				if ((0xffffffffefffffffL & l) != 0L) {
					jjCheckNAddStates(28, 31);
				}
				break;
			case 43:
				if (curChar == 92) {
					jjstateSet[jjnewStateCnt++] = 44;
				}
				break;
			case 44:
				if ((0x14404410000000L & l) != 0L) {
					jjCheckNAddStates(28, 31);
				}
				break;
			case 53:
				if ((0xffffffffefffffffL & l) != 0L) {
					jjCheckNAddStates(34, 37);
				}
				break;
			case 54:
				if (curChar == 92) {
					jjstateSet[jjnewStateCnt++] = 55;
				}
				break;
			case 55:
				if ((0x14404410000000L & l) != 0L) {
					jjCheckNAddStates(34, 37);
				}
				break;
			case 62:
				if ((0x20000000200L & l) != 0L) {
					jjAddStates(64, 66);
				}
				break;
			case 63:
				if ((0x20000000200L & l) != 0L && kind > 66) {
					kind = 66;
				}
				break;
			case 64:
			case 67:
				if ((0x4000000040000L & l) != 0L) {
					jjCheckNAdd(63);
				}
				break;
			case 65:
				if ((0x20000000200L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 64;
				}
				break;
			case 66:
				if ((0x8000000080000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 65;
				}
				break;
			case 68:
				if ((0x20000000200000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 67;
				}
				break;
			case 69:
				if ((0x8000000080000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 68;
				}
				break;
			case 71:
				if ((0x7fffffe07fffffeL & l) != 0L) {
					jjCheckNAddStates(58, 63);
				}
				break;
			case 72:
				if ((0x7fffffe87fffffeL & l) != 0L) {
					jjCheckNAddTwoStates(72, 73);
				}
				break;
			case 73:
				if ((0x7fffffe87fffffeL & l) != 0L) {
					jjCheckNAdd(74);
				}
				break;
			case 75:
				if ((0x7fffffe87fffffeL & l) != 0L) {
					jjCheckNAddTwoStates(75, 76);
				}
				break;
			case 76:
				if ((0x7fffffe87fffffeL & l) != 0L) {
					jjCheckNAdd(77);
				}
				break;
			case 78:
				if ((0x7fffffe87fffffeL & l) == 0L) {
					break;
				}
				if (kind > 146) {
					kind = 146;
				} {
				jjCheckNAddStates(44, 47);
			}
				break;
			case 79:
				if ((0x7fffffe87fffffeL & l) != 0L) {
					jjCheckNAddStates(44, 47);
				}
				break;
			case 80:
				if ((0x7fffffe87fffffeL & l) != 0L && kind > 146) {
					kind = 146;
				}
				break;
			case 81:
				if (curChar == 92) {
					jjAddStates(69, 70);
				}
				break;
			case 82:
				if ((0x4000000080000001L & l) != 0L) {
					jjCheckNAddStates(44, 47);
				}
				break;
			case 84:
				if ((0x7e0000007eL & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 85;
				}
				break;
			case 85:
				if ((0x7e0000007eL & l) != 0L) {
					jjCheckNAddStates(44, 47);
				}
				break;
			case 86:
				if ((0x7e0000007eL & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 87;
				}
				break;
			case 87:
				if ((0x7e0000007eL & l) != 0L && kind > 146) {
					kind = 146;
				}
				break;
			case 88:
				if ((0x4000000080000001L & l) != 0L && kind > 146) {
					kind = 146;
				}
				break;
			case 89:
				if (curChar == 92) {
					jjstateSet[jjnewStateCnt++] = 90;
				}
				break;
			case 90:
				if ((0x4000000080000001L & l) == 0L) {
					break;
				}
				if (kind > 146) {
					kind = 146;
				} {
				jjCheckNAddStates(44, 47);
			}
				break;
			case 92:
				if ((0x7e0000007eL & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 93;
				}
				break;
			case 93:
				if ((0x7e0000007eL & l) == 0L) {
					break;
				}
				if (kind > 146) {
					kind = 146;
				} {
				jjCheckNAddStates(44, 47);
			}
				break;
			case 103:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(71, 72);
				}
				break;
			case 107:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(73, 74);
				}
				break;
			case 117:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(75, 76);
				}
				break;
			case 124:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(77, 78);
				}
				break;
			case 128:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(79, 80);
				}
				break;
			case 138:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(81, 82);
				}
				break;
			case 145:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(83, 84);
				}
				break;
			case 149:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(85, 86);
				}
				break;
			case 154:
				if ((0x2000000020L & l) != 0L) {
					jjAddStates(87, 88);
				}
				break;
			default:
				break;
			}
		} while (i != startsAt);
		return kind;
	}

	private int jjMoveNfa_0_curCharLessThan64(int startsAt, int i, int kind) {
		long l = 1L << curChar;
		do {
			switch (jjstateSet[--i]) {
			case 0:
				if ((0x3ff000000000000L & l) != 0L) {
					if (kind > 151) {
						kind = 151;
					}
					{
						jjCheckNAddStates(0, 6);
					}
				} else if ((0x100003600L & l) != 0L) {
					if (kind > 2) {
						kind = 2;
					}
				} else if (curChar == 46) {
					jjCheckNAddTwoStates(99, 153);
				} else if (curChar == 45) {
					jjCheckNAddStates(7, 11);
				} else if (curChar == 43) {
					jjCheckNAddStates(12, 16);
				} else if (curChar == 58) {
					if (kind > 145) {
						kind = 145;
					}
					{
						jjCheckNAddStates(17, 19);
					}
				} else if (curChar == 34) {
					jjstateSet[jjnewStateCnt++] = 60;
				} else if (curChar == 39) {
					jjstateSet[jjnewStateCnt++] = 49;
				} else if (curChar == 36) {
					jjstateSet[jjnewStateCnt++] = 24;
				} else if (curChar == 60) {
					jjCheckNAddTwoStates(13, 14);
				} else if (curChar == 40) {
					jjCheckNAddTwoStates(4, 5);
				} else if (curChar == 35) {
					if (kind > 3) {
						kind = 3;
					}
					{
						jjCheckNAdd(2);
					}
				} else if (curChar == 63) {
					jjstateSet[jjnewStateCnt++] = 21;
				}
				if (curChar == 34) {
					jjCheckNAddStates(20, 22);
				} else if (curChar == 39) {
					jjCheckNAddStates(23, 25);
				}
				break;
			case 1:
				if (curChar != 35) {
					break;
				}
				if (kind > 3) {
					kind = 3;
				} {
				jjCheckNAdd(2);
			}
				break;
			case 2:
				if ((0xffffffffffffdbffL & l) == 0L) {
					break;
				}
				if (kind > 3) {
					kind = 3;
				} {
				jjCheckNAdd(2);
			}
				break;
			case 3:
				if (curChar == 40) {
					jjCheckNAddTwoStates(4, 5);
				}
				break;
			case 4:
				if ((0x100003600L & l) != 0L) {
					jjCheckNAddTwoStates(4, 5);
				}
				break;
			case 5:
				if (curChar == 41 && kind > 30) {
					kind = 30;
				}
				break;
			case 7:
				if ((0x100003600L & l) != 0L) {
					jjAddStates(26, 27);
				}
				break;
			case 12:
				if (curChar == 60) {
					jjCheckNAddTwoStates(13, 14);
				}
				break;
			case 13:
				if ((0xaffffffa00000000L & l) != 0L) {
					jjCheckNAddTwoStates(13, 14);
				}
				break;
			case 14:
				if (curChar == 62 && kind > 144) {
					kind = 144;
				}
				break;
			case 15:
				if (curChar == 58) {
					jjstateSet[jjnewStateCnt++] = 16;
				}
				break;
			case 16:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 147) {
					kind = 147;
				} {
				jjCheckNAddTwoStates(17, 18);
			}
				break;
			case 17:
				if ((0x3ff600000000000L & l) != 0L) {
					jjCheckNAddTwoStates(17, 18);
				}
				break;
			case 18:
				if ((0x3ff200000000000L & l) != 0L && kind > 147) {
					kind = 147;
				}
				break;
			case 20:
				if (curChar == 63) {
					jjstateSet[jjnewStateCnt++] = 21;
				}
				break;
			case 21:
			case 22:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 148) {
					kind = 148;
				} {
				jjCheckNAdd(22);
			}
				break;
			case 23:
				if (curChar == 36) {
					jjstateSet[jjnewStateCnt++] = 24;
				}
				break;
			case 24:
			case 25:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 149) {
					kind = 149;
				} {
				jjCheckNAdd(25);
			}
				break;
			case 28:
				if (curChar == 45) {
					jjCheckNAdd(29);
				}
				break;
			case 29:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 150) {
					kind = 150;
				} {
				jjCheckNAddTwoStates(28, 29);
			}
				break;
			case 30:
				if (curChar == 39) {
					jjCheckNAddStates(23, 25);
				}
				break;
			case 31:
				if ((0xffffff7fffffdbffL & l) != 0L) {
					jjCheckNAddStates(23, 25);
				}
				break;
			case 33:
				if ((0x8400000000L & l) != 0L) {
					jjCheckNAddStates(23, 25);
				}
				break;
			case 34:
				if (curChar == 39 && kind > 164) {
					kind = 164;
				}
				break;
			case 35:
				if (curChar == 34) {
					jjCheckNAddStates(20, 22);
				}
				break;
			case 36:
				if ((0xfffffffbffffdbffL & l) != 0L) {
					jjCheckNAddStates(20, 22);
				}
				break;
			case 38:
				if ((0x8400000000L & l) != 0L) {
					jjCheckNAddStates(20, 22);
				}
				break;
			case 39:
				if (curChar == 34 && kind > 165) {
					kind = 165;
				}
				break;
			case 40:
				if (curChar == 39) {
					jjCheckNAddStates(28, 31);
				}
				break;
			case 41:
			case 46:
				if (curChar == 39) {
					jjCheckNAddTwoStates(42, 43);
				}
				break;
			case 42:
				if ((0xffffff7fffffffffL & l) != 0L) {
					jjCheckNAddStates(28, 31);
				}
				break;
			case 44:
				if ((0x8400000000L & l) != 0L) {
					jjCheckNAddStates(28, 31);
				}
				break;
			case 45:
				if (curChar == 39) {
					jjAddStates(32, 33);
				}
				break;
			case 47:
				if (curChar == 39 && kind > 166) {
					kind = 166;
				}
				break;
			case 48:
				if (curChar == 39) {
					jjstateSet[jjnewStateCnt++] = 47;
				}
				break;
			case 49:
				if (curChar == 39) {
					jjstateSet[jjnewStateCnt++] = 40;
				}
				break;
			case 50:
				if (curChar == 39) {
					jjstateSet[jjnewStateCnt++] = 49;
				}
				break;
			case 51:
				if (curChar == 34) {
					jjCheckNAddStates(34, 37);
				}
				break;
			case 52:
			case 57:
				if (curChar == 34) {
					jjCheckNAddTwoStates(53, 54);
				}
				break;
			case 53:
				if ((0xfffffffbffffffffL & l) != 0L) {
					jjCheckNAddStates(34, 37);
				}
				break;
			case 55:
				if ((0x8400000000L & l) != 0L) {
					jjCheckNAddStates(34, 37);
				}
				break;
			case 56:
				if (curChar == 34) {
					jjAddStates(38, 39);
				}
				break;
			case 58:
				if (curChar == 34 && kind > 167) {
					kind = 167;
				}
				break;
			case 59:
				if (curChar == 34) {
					jjstateSet[jjnewStateCnt++] = 58;
				}
				break;
			case 60:
				if (curChar == 34) {
					jjstateSet[jjnewStateCnt++] = 51;
				}
				break;
			case 61:
				if (curChar == 34) {
					jjstateSet[jjnewStateCnt++] = 60;
				}
				break;
			case 72:
				if ((0x3ff600000000000L & l) != 0L) {
					jjAddStates(40, 41);
				}
				break;
			case 73:
				if ((0x3ff200000000000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 74;
				}
				break;
			case 74:
				if (curChar == 58 && kind > 145) {
					kind = 145;
				}
				break;
			case 75:
				if ((0x3ff600000000000L & l) != 0L) {
					jjAddStates(42, 43);
				}
				break;
			case 76:
				if ((0x3ff200000000000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 77;
				}
				break;
			case 77:
				if (curChar == 58) {
					jjCheckNAddStates(17, 19);
				}
				break;
			case 78:
				if ((0x7ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 146) {
					kind = 146;
				} {
				jjCheckNAddStates(44, 47);
			}
				break;
			case 79:
				if ((0x7ff600000000000L & l) != 0L) {
					jjCheckNAddStates(44, 47);
				}
				break;
			case 80:
				if ((0x7ff200000000000L & l) != 0L && kind > 146) {
					kind = 146;
				}
				break;
			case 82:
				if ((0xa800fffa00000000L & l) != 0L) {
					jjCheckNAddStates(44, 47);
				}
				break;
			case 83:
				if (curChar == 37) {
					jjAddStates(48, 49);
				}
				break;
			case 84:
				if ((0x3ff000000000000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 85;
				}
				break;
			case 85:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddStates(44, 47);
				}
				break;
			case 86:
				if ((0x3ff000000000000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 87;
				}
				break;
			case 87:
				if ((0x3ff000000000000L & l) != 0L && kind > 146) {
					kind = 146;
				}
				break;
			case 88:
				if ((0xa800fffa00000000L & l) != 0L && kind > 146) {
					kind = 146;
				}
				break;
			case 90:
				if ((0xa800fffa00000000L & l) == 0L) {
					break;
				}
				if (kind > 146) {
					kind = 146;
				} {
				jjCheckNAddStates(44, 47);
			}
				break;
			case 91:
				if (curChar == 37) {
					jjstateSet[jjnewStateCnt++] = 92;
				}
				break;
			case 92:
				if ((0x3ff000000000000L & l) != 0L) {
					jjstateSet[jjnewStateCnt++] = 93;
				}
				break;
			case 93:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 146) {
					kind = 146;
				} {
				jjCheckNAddStates(44, 47);
			}
				break;
			case 94:
				if (curChar != 58) {
					break;
				}
				if (kind > 145) {
					kind = 145;
				} {
				jjCheckNAddStates(17, 19);
			}
				break;
			case 95:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 151) {
					kind = 151;
				} {
				jjCheckNAddStates(0, 6);
			}
				break;
			case 96:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 151) {
					kind = 151;
				} {
				jjCheckNAdd(96);
			}
				break;
			case 97:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(97, 98);
				}
				break;
			case 98:
				if (curChar == 46) {
					jjCheckNAdd(99);
				}
				break;
			case 99:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 154) {
					kind = 154;
				} {
				jjCheckNAdd(99);
			}
				break;
			case 100:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(100, 101);
				}
				break;
			case 101:
				if (curChar == 46) {
					jjCheckNAddTwoStates(102, 103);
				}
				break;
			case 102:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(102, 103);
				}
				break;
			case 104:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(105);
				}
				break;
			case 105:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 157) {
					kind = 157;
				} {
				jjCheckNAdd(105);
			}
				break;
			case 106:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(106, 107);
				}
				break;
			case 108:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(109);
				}
				break;
			case 109:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 157) {
					kind = 157;
				} {
				jjCheckNAdd(109);
			}
				break;
			case 110:
				if (curChar == 43) {
					jjCheckNAddStates(12, 16);
				}
				break;
			case 111:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 152) {
					kind = 152;
				} {
				jjCheckNAdd(111);
			}
				break;
			case 112:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(112, 113);
				}
				break;
			case 113:
				if (curChar == 46) {
					jjCheckNAdd(114);
				}
				break;
			case 114:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 155) {
					kind = 155;
				} {
				jjCheckNAdd(114);
			}
				break;
			case 115:
				if (curChar == 46) {
					jjCheckNAdd(116);
				}
				break;
			case 116:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(116, 117);
				}
				break;
			case 118:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(119);
				}
				break;
			case 119:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 162) {
					kind = 162;
				} {
				jjCheckNAdd(119);
			}
				break;
			case 120:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddStates(50, 53);
				}
				break;
			case 121:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(121, 122);
				}
				break;
			case 122:
				if (curChar == 46) {
					jjCheckNAddTwoStates(123, 124);
				}
				break;
			case 123:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(123, 124);
				}
				break;
			case 125:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(126);
				}
				break;
			case 126:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 162) {
					kind = 162;
				} {
				jjCheckNAdd(126);
			}
				break;
			case 127:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(127, 128);
				}
				break;
			case 129:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(130);
				}
				break;
			case 130:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 162) {
					kind = 162;
				} {
				jjCheckNAdd(130);
			}
				break;
			case 131:
				if (curChar == 45) {
					jjCheckNAddStates(7, 11);
				}
				break;
			case 132:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 153) {
					kind = 153;
				} {
				jjCheckNAdd(132);
			}
				break;
			case 133:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(133, 134);
				}
				break;
			case 134:
				if (curChar == 46) {
					jjCheckNAdd(135);
				}
				break;
			case 135:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 156) {
					kind = 156;
				} {
				jjCheckNAdd(135);
			}
				break;
			case 136:
				if (curChar == 46) {
					jjCheckNAdd(137);
				}
				break;
			case 137:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(137, 138);
				}
				break;
			case 139:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(140);
				}
				break;
			case 140:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 163) {
					kind = 163;
				} {
				jjCheckNAdd(140);
			}
				break;
			case 141:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddStates(54, 57);
				}
				break;
			case 142:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(142, 143);
				}
				break;
			case 143:
				if (curChar == 46) {
					jjCheckNAddTwoStates(144, 145);
				}
				break;
			case 144:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(144, 145);
				}
				break;
			case 146:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(147);
				}
				break;
			case 147:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 163) {
					kind = 163;
				} {
				jjCheckNAdd(147);
			}
				break;
			case 148:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(148, 149);
				}
				break;
			case 150:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(151);
				}
				break;
			case 151:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 163) {
					kind = 163;
				} {
				jjCheckNAdd(151);
			}
				break;
			case 152:
				if (curChar == 46) {
					jjCheckNAddTwoStates(99, 153);
				}
				break;
			case 153:
				if ((0x3ff000000000000L & l) != 0L) {
					jjCheckNAddTwoStates(153, 154);
				}
				break;
			case 155:
				if ((0x280000000000L & l) != 0L) {
					jjCheckNAdd(156);
				}
				break;
			case 156:
				if ((0x3ff000000000000L & l) == 0L) {
					break;
				}
				if (kind > 157) {
					kind = 157;
				} {
				jjCheckNAdd(156);
			}
				break;
			default:
				break;
			}
		} while (i != startsAt);
		return kind;
	}

	/**
	 * Token literal values.
	 */
	public static final String[] jjstrLiteralImages = {
			"", null, null, null, "\50", "\51", "\173", "\175", "\133", "\135", "\73",
			"\54", "\56", "\75", "\41\75", "\76", "\74", "\74\75", "\76\75", "\41", "\174\174",
			"\46\46", "\53", "\55", "\52", "\77", "\57", "\174", "\136", "\136\136", null, null,
			"\141", null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			null, null, null, null, null, null, null, null, null, null, null, null, null, null,
			"\74\74", "\76\76", };

	protected Token jjFillToken() {
		final Token t;
		final String curTokenImage;
		final int beginLine;
		final int endLine;
		final int beginColumn;
		final int endColumn;
		String im = jjstrLiteralImages[jjmatchedKind];
		curTokenImage = (im == null) ? input_stream.GetImage() : im;
		beginLine = input_stream.getBeginLine();
		beginColumn = input_stream.getBeginColumn();
		endLine = input_stream.getEndLine();
		endColumn = input_stream.getEndColumn();
		t = Token.newToken(jjmatchedKind, curTokenImage);

		t.beginLine = beginLine;
		t.endLine = endLine;
		t.beginColumn = beginColumn;
		t.endColumn = endColumn;

		return t;
	}

	static final int[] jjnextStates = {
			96, 97, 98, 100, 101, 106, 107, 132, 133, 134, 136, 141, 111, 112, 113, 115,
			120, 78, 89, 91, 36, 37, 39, 31, 32, 34, 7, 8, 41, 42, 43, 45,
			46, 48, 52, 53, 54, 56, 57, 59, 72, 73, 75, 76, 79, 80, 81, 83,
			84, 86, 121, 122, 127, 128, 142, 143, 148, 149, 72, 73, 74, 75, 76, 77,
			66, 69, 70, 13, 14, 82, 88, 104, 105, 108, 109, 118, 119, 125, 126, 129,
			130, 139, 140, 146, 147, 150, 151, 155, 156,
	};

	private static boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2) {
		if (hiByte == 0) {
			return ((jjbitVec2[i2] & l2) != 0L);
		}
		return (jjbitVec0[i1] & l1) != 0L;
	}

	private static boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2) {
		switch (hiByte) {
		case 0:
			return ((jjbitVec4[i2] & l2) != 0L);
		case 3:
			return ((jjbitVec5[i2] & l2) != 0L);
		case 32:
			return ((jjbitVec6[i2] & l2) != 0L);
		case 33:
			return ((jjbitVec7[i2] & l2) != 0L);
		case 47:
			return ((jjbitVec8[i2] & l2) != 0L);
		case 48:
			return ((jjbitVec0[i2] & l2) != 0L);
		case 253:
			return ((jjbitVec9[i2] & l2) != 0L);
		case 255:
			return ((jjbitVec10[i2] & l2) != 0L);
		default:
			return (jjbitVec3[i1] & l1) != 0L;
		}
	}

	private static boolean jjCanMove_2(int hiByte, int i1, int i2, long l1, long l2) {
		switch (hiByte) {
		case 0:
			return ((jjbitVec11[i2] & l2) != 0L);
		case 3:
			return ((jjbitVec12[i2] & l2) != 0L);
		case 32:
			return ((jjbitVec13[i2] & l2) != 0L);
		case 33:
			return ((jjbitVec7[i2] & l2) != 0L);
		case 47:
			return ((jjbitVec8[i2] & l2) != 0L);
		case 48:
			return ((jjbitVec0[i2] & l2) != 0L);
		case 253:
			return ((jjbitVec9[i2] & l2) != 0L);
		case 255:
			return ((jjbitVec10[i2] & l2) != 0L);
		default:
			return (jjbitVec3[i1] & l1) != 0L;
		}
	}

	int curLexState = 0;
	int defaultLexState = 0;
	int jjnewStateCnt;
	int jjround;
	int jjmatchedPos;
	int jjmatchedKind;

	/**
	 * Get the next Token.
	 */
	public Token getNextToken() {
		Token specialToken = null;
		Token matchedToken;
		int curPos;

		for (;;) {
			try {
				curChar = input_stream.BeginToken();
			} catch (Exception e) {
				jjmatchedKind = 0;
				jjmatchedPos = -1;
				matchedToken = jjFillToken();
				matchedToken.specialToken = specialToken;
				return matchedToken;
			}

			jjmatchedKind = 0x7fffffff;
			jjmatchedPos = 0;
			curPos = jjMoveStringLiteralDfa0_0();
			if (jjmatchedKind != 0x7fffffff) {
				if (jjmatchedPos + 1 < curPos) {
					input_stream.backup(curPos - jjmatchedPos - 1);
				}
				if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
					matchedToken = jjFillToken();
					matchedToken.specialToken = specialToken;
					return matchedToken;
				} else {
					if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) {
						matchedToken = jjFillToken();
						if (specialToken == null) {
							specialToken = matchedToken;
						} else {
							matchedToken.specialToken = specialToken;
							specialToken = (specialToken.next = matchedToken);
						}
					}
					continue;
				}
			}
			int error_line = input_stream.getEndLine();
			int error_column = input_stream.getEndColumn();
			String error_after = null;
			boolean EOFSeen = false;
			try {
				input_stream.readChar();
				input_stream.backup(1);
			} catch (java.io.IOException e1) {
				EOFSeen = true;
				error_after = curPos <= 1 ? "" : input_stream.GetImage();
				if (curChar == '\n' || curChar == '\r') {
					error_line++;
					error_column = 0;
				} else {
					error_column++;
				}
			}
			if (!EOFSeen) {
				input_stream.backup(1);
				error_after = curPos <= 1 ? "" : input_stream.GetImage();
			}
			throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar,
					TokenMgrError.LEXICAL_ERROR);
		}
	}

	void SkipLexicalActions(Token matchedToken) {
	}

	void MoreLexicalActions() {
		jjimageLen += jjmatchedPos + 1;
	}

	void TokenLexicalActions(Token matchedToken) {
	}

	private void jjCheckNAdd(int state) {
		if (jjrounds[state] != jjround) {
			jjstateSet[jjnewStateCnt++] = state;
			jjrounds[state] = jjround;
		}
	}

	private void jjAddStates(int start, int end) {
		do {
			jjstateSet[jjnewStateCnt++] = jjnextStates[start];
		} while (start++ != end);
	}

	private void jjCheckNAddTwoStates(int state1, int state2) {
		jjCheckNAdd(state1);
		jjCheckNAdd(state2);
	}

	private void jjCheckNAddStates(int start, int end) {
		do {
			jjCheckNAdd(jjnextStates[start]);
		} while (start++ != end);
	}

	/**
	 * Constructor.
	 */
	public SyntaxTreeBuilderTokenManager(CharStream stream) {

		input_stream = stream;
	}

	/**
	 * Constructor.
	 */
	public SyntaxTreeBuilderTokenManager(CharStream stream, int lexState) {
		ReInit(stream);
		SwitchTo(lexState);
	}

	/**
	 * Reinitialise parser.
	 */

	public void ReInit(CharStream stream) {

		jjmatchedPos = jjnewStateCnt = 0;
		curLexState = defaultLexState;
		input_stream = stream;
		ReInitRounds();
	}

	private void ReInitRounds() {
		int i;
		jjround = 0x80000001;
		for (i = 157; i-- > 0;) {
			jjrounds[i] = 0x80000000;
		}
	}

	/**
	 * Reinitialise parser.
	 */
	public void ReInit(CharStream stream, int lexState) {
		ReInit(stream);
		SwitchTo(lexState);
	}

	/**
	 * Switch to specified lex state.
	 */
	public void SwitchTo(int lexState) {
		if (lexState != 0) {
			throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.",
					TokenMgrError.INVALID_LEXICAL_STATE);
		} else {
			curLexState = lexState;
		}
	}

	/**
	 * Lexer state names.
	 */
	public static final String[] lexStateNames = {
			"DEFAULT",
	};

	/**
	 * Lex State array.
	 */
	public static final int[] jjnewLexState = {
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
			-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
	};
	static final long[] jjtoToken = {
			0xfffffffffffffff1L, 0xffffffffffffffffL, 0xc0000fc3fffffffL,
	};
	static final long[] jjtoSkip = {
			0xcL, 0x0L, 0x0L,
	};
	static final long[] jjtoSpecial = {
			0x8L, 0x0L, 0x0L,
	};
	static final long[] jjtoMore = {
			0x0L, 0x0L, 0x0L,
	};
	protected CharStream input_stream;

	private final int[] jjrounds = new int[157];
	private final int[] jjstateSet = new int[2 * 157];
	private final StringBuilder jjimage = new StringBuilder();
	private final StringBuilder image = jjimage;
	private int jjimageLen;
	protected int curChar;
}