package uml2text; public class ParserTokenManager { protected static final String add_escapes(String str) { String retval = ""; char ch; for (int i = 0; i < str.length(); i++) { ch = str.charAt(i); if (ch == '\b') { retval += "\\b"; } else if (ch == '\t') { retval += "\\t"; } else if (ch == '\n') { retval += "\\n"; } else if (ch == '\f') { retval += "\\f"; } else if (ch == '\r') { retval += "\\r"; } else if (ch == '\"') { retval += "\\\""; } else if (ch == '\'') { retval += "\\\'"; } else if (ch == '\\') { retval += "\\\\"; } else { retval += ch; } } return retval; } private static final String strLiteralImages[] = new String[39]; static { { char temp[] = { 35, 67, 108, 97, 115, 115, }; strLiteralImages[1] = new String(temp); } { char temp[] = { 35, 68, 105, 99, 116, 105, 111, 110, 97, 114, 121, }; strLiteralImages[2] = new String(temp); } { char temp[] = { 35, 71, 114, 97, 112, 104, }; strLiteralImages[3] = new String(temp); } { char temp[] = { 35, 86, 101, 114, 116, 101, 120, }; strLiteralImages[4] = new String(temp); } { char temp[] = { 35, 76, 105, 115, 116, }; strLiteralImages[5] = new String(temp); } { char temp[] = { 35, 73, 110, 99, 111, 109, 105, 110, 103, }; strLiteralImages[6] = new String(temp); } { char temp[] = { 35, 79, 117, 116, 103, 111, 105, 110, 103, }; strLiteralImages[7] = new String(temp); } { char temp[] = { 35, 67, 111, 110, 115, 116, 86, 101, 114, 116, 101, 120, }; strLiteralImages[8] = new String(temp); } { char temp[] = { 35, 65, 108, 116, 86, 101, 114, 116, 101, 120, }; strLiteralImages[9] = new String(temp); } { char temp[] = { 35, 84, 101, 114, 109, 86, 101, 114, 116, 101, 120, }; strLiteralImages[10] = new String(temp); } { char temp[] = { 35, 69, 100, 103, 101, }; strLiteralImages[11] = new String(temp); } { char temp[] = { 35, 65, 108, 116, 69, 100, 103, 101, }; strLiteralImages[12] = new String(temp); } { char temp[] = { 35, 67, 111, 110, 115, 116, 69, 100, 103, 101, }; strLiteralImages[13] = new String(temp); } { char temp[] = { 46, }; strLiteralImages[14] = new String(temp); } { char temp[] = { 123, }; strLiteralImages[15] = new String(temp); } { char temp[] = { 125, }; strLiteralImages[16] = new String(temp); } { char temp[] = { 116, 114, 97, 118, 115, 116, 97, 116, }; strLiteralImages[17] = new String(temp); } { char temp[] = { 40, }; strLiteralImages[18] = new String(temp); } { char temp[] = { 41, }; strLiteralImages[19] = new String(temp); } { char temp[] = { 32, }; strLiteralImages[20] = new String(temp); } { char temp[] = { 9, }; strLiteralImages[21] = new String(temp); } { char temp[] = { 10, }; strLiteralImages[22] = new String(temp); } { char temp[] = { 13, }; strLiteralImages[23] = new String(temp); } { char temp[] = { 116, 114, 117, 101, }; strLiteralImages[34] = new String(temp); } { char temp[] = { 102, 97, 108, 115, 101, }; strLiteralImages[35] = new String(temp); } } private static final int[] nextStates0 = { 1, 2, }; private static final int[] nextStates1 = { 7, 8, }; private static final int[] nextStates2 = { 6, 7, }; private static final int[] nextStates3 = { 4, 5, 8, }; private static final char[] rangeMoves0 = {128, 65535, }; private static final int[] nextStates4 = { 15, 11, }; private static final int[] nextStates5 = { 13, 14, 16, }; private static final int[] nextStates6 = { 10, 12, }; private static final int[] nextStates7 = { 19, 20, 22, }; private static final int[] nextStates8 = { 19, 20, 24, 22, }; private static final int[] nextStates9 = { 21, 23, 25, }; private static final int[] nextStates10 = { 31, 29, }; private static final int[] nextStates11 = { 30, 32, }; private static final int[] nextStates12 = { 28, 29, }; private static final char[] rangeMoves1 = {192, 214, 216, 246, 248, 255, 256, 8191, 12352, 12687, 13056, 13183, 13312, 15661, 19968, 40959, 63744, 64255, }; private static final char[] rangeMoves2 = {192, 214, 216, 246, 248, 255, 256, 8191, 1632, 1641, 1776, 1785, 2406, 2415, 2534, 2543, 2662, 2671, 2790, 2799, 2918, 2927, 3047, 3055, 3174, 3183, 3302, 3311, 3430, 3439, 3664, 3673, 3792, 3801, 4160, 4169, 12352, 12687, 13056, 13183, 13312, 15661, 19968, 40959, 63744, 64255, }; private static final int[] nextStates13 = { 42, 8, }; private static final int[] nextStates14 = { 41, 42, }; private static final int[] nextStates15 = { 39, 40, 8, }; private static final int[] nextStates16 = { 37, 38, }; private static final int[] nextStates17 = { 46, 8, }; private static final int[] nextStates18 = { 45, 46, }; private static final int[] nextStates19 = { 43, 44, }; private static final int[] nextStates20 = { 50, 8, }; private static final int[] nextStates21 = { 49, 50, }; private static final int[] nextStates22 = { 47, 48, 8, }; private static final int[] nextStates23 = { 37, 38, 43, 44, 47, 48, 8, }; private static final int[] nextStates24 = { 53, 54, 55, }; private static final int[] nextStates25 = { 60, 58, }; private static final int[] nextStates26 = { 59, 61, }; private static final int[] nextStates27 = { 57, 58, }; private static final int[] nextStates28 = { 52, 56, }; private static final int[] nextStates29 = { 64, 65, }; private static final int[] nextStates30 = { 66, 67, }; private static final int[] nextStates31 = { 63, 66, 67, }; private final boolean CharInCharList(char[] charList) { for (int i = 0; i < charList.length; i++) if (curChar == charList[i]) return true; else if (curChar < charList[i]) return false; return false; } private final boolean CharInRangeList(char[] rangeList) { for (int i = 0; i < rangeList.length; i += 2) if (curChar >= rangeList[i] && curChar <= rangeList[i + 1]) return true; else if (curChar < rangeList[i]) return false; return false; } private final void MoveNfa(int[] oldStates, int[] newStates) { int i = newStateCnt, j, k; newStateCnt = 0; round++; MainLoop : for (;;) { if (curChar < 64) { long l = 1L << curChar; do { switch(oldStates[--i]) { case (52) : if ((0x800000000000L & l) != 0L) { nextStates = nextStates24; break; } else continue; case (53) : if ((0xffffffffffffdbffL & l) != 0L) { nextStates = nextStates24; break; } else continue; case (54) : if ((0x400L & l) != 0L) { if (curKind > 24) curKind = 24; continue; } else continue; case (55) : if ((0x2000L & l) != 0L) { if (rounds[54] != round) { rounds[54] = round; newStates[newStateCnt++] = 54; } continue; } else continue; case (56) : if ((0x40000000000L & l) != 0L) { nextStates = nextStates27; break; } else continue; case (57) : if ((0xfffffbffffffffffL & l) != 0L) { nextStates = nextStates27; break; } else continue; case (58) : if ((0x40000000000L & l) != 0L) { nextStates = nextStates26; break; } else continue; case (59) : if ((0xffff7fffffffffffL & l) != 0L) { nextStates = nextStates25; break; } else continue; case (60) : if ((0xfffffbffffffffffL & l) != 0L) { nextStates = nextStates25; break; } else continue; case (61) : if ((0x800000000000L & l) != 0L) { if (curKind > 25) curKind = 25; continue; } else continue; case (0) : if ((0x3fe000000000000L & l) != 0L) { if (curKind > 26) curKind = 26; nextStates = nextStates0; break; } else continue; case (1) : if ((0x3ff000000000000L & l) != 0L) { if (curKind > 26) curKind = 26; nextStates = nextStates0; break; } else continue; case (64) : if ((0x3ff000000000000L & l) != 0L) { if (curKind > 27) curKind = 27; nextStates = nextStates29; break; } else continue; case (66) : if ((0xff000000000000L & l) != 0L) { if (curKind > 28) curKind = 28; nextStates = nextStates30; break; } else continue; case (37) : if ((0x3ff000000000000L & l) != 0L) { nextStates = nextStates16; break; } else continue; case (38) : if ((0x400000000000L & l) != 0L) { if (rounds[39] != round) { rounds[39] = round; newStates[newStateCnt++] = 39; } continue; } else continue; case (39) : if ((0x3ff000000000000L & l) != 0L) { if (curKind > 29) curKind = 29; nextStates = nextStates15; break; } else continue; case (41) : if ((0x280000000000L & l) != 0L) { if (rounds[42] != round) { rounds[42] = round; newStates[newStateCnt++] = 42; } continue; } else continue; case (42) : if ((0x3ff000000000000L & l) != 0L) { if (curKind > 29) curKind = 29; nextStates = nextStates13; break; } else continue; case (3) : if ((0x400000000000L & l) != 0L) { if (rounds[4] != round) { rounds[4] = round; newStates[newStateCnt++] = 4; } continue; } else continue; case (4) : if ((0x3ff000000000000L & l) != 0L) { if (curKind > 29) curKind = 29; nextStates = nextStates3; break; } else continue; case (6) : if ((0x280000000000L & l) != 0L) { if (rounds[7] != round) { rounds[7] = round; newStates[newStateCnt++] = 7; } continue; } else continue; case (7) : if ((0x3ff000000000000L & l) != 0L) { if (curKind > 29) curKind = 29; nextStates = nextStates1; break; } else continue; case (43) : if ((0x3ff000000000000L & l) != 0L) { nextStates = nextStates19; break; } else continue; case (45) : if ((0x280000000000L & l) != 0L) { if (rounds[46] != round) { rounds[46] = round; newStates[newStateCnt++] = 46; } continue; } else continue; case (46) : if ((0x3ff000000000000L & l) != 0L) { if (curKind > 29) curKind = 29; nextStates = nextStates17; break; } else continue; case (47) : if ((0x3ff000000000000L & l) != 0L) { nextStates = nextStates22; break; } else continue; case (49) : if ((0x280000000000L & l) != 0L) { if (rounds[50] != round) { rounds[50] = round; newStates[newStateCnt++] = 50; } continue; } else continue; case (50) : if ((0x3ff000000000000L & l) != 0L) { nextStates = nextStates20; break; } else continue; case (9) : if ((0x8000000000L & l) != 0L) { nextStates = nextStates6; break; } else continue; case (10) : if ((0xffffff7fffffdbffL & l) != 0L) { if (rounds[11] != round) { rounds[11] = round; newStates[newStateCnt++] = 11; } continue; } else continue; case (13) : if ((0x8400000000L & l) != 0L) { if (rounds[11] != round) { rounds[11] = round; newStates[newStateCnt++] = 11; } continue; } else continue; case (14) : if ((0xff000000000000L & l) != 0L) { nextStates = nextStates4; break; } else continue; case (15) : if ((0xff000000000000L & l) != 0L) { if (rounds[11] != round) { rounds[11] = round; newStates[newStateCnt++] = 11; } continue; } else continue; case (16) : if ((0xf000000000000L & l) != 0L) { if (rounds[17] != round) { rounds[17] = round; newStates[newStateCnt++] = 17; } continue; } else continue; case (17) : if ((0xff000000000000L & l) != 0L) { if (rounds[15] != round) { rounds[15] = round; newStates[newStateCnt++] = 15; } continue; } else continue; case (11) : if ((0x8000000000L & l) != 0L) { if (curKind > 31) curKind = 31; continue; } else continue; case (18) : if ((0x400000000L & l) != 0L) { nextStates = nextStates7; break; } else continue; case (19) : if ((0xfffffffbffffdbffL & l) != 0L) { nextStates = nextStates7; break; } else continue; case (21) : if ((0x8400000000L & l) != 0L) { nextStates = nextStates7; break; } else continue; case (23) : if ((0xff000000000000L & l) != 0L) { nextStates = nextStates8; break; } else continue; case (24) : if ((0xff000000000000L & l) != 0L) { nextStates = nextStates7; break; } else continue; case (25) : if ((0xf000000000000L & l) != 0L) { if (rounds[26] != round) { rounds[26] = round; newStates[newStateCnt++] = 26; } continue; } else continue; case (26) : if ((0xff000000000000L & l) != 0L) { if (rounds[24] != round) { rounds[24] = round; newStates[newStateCnt++] = 24; } continue; } else continue; case (22) : if ((0x400000000L & l) != 0L) { if (curKind > 32) curKind = 32; continue; } else continue; case (33) : if ((0x10000000000L & l) != 0L) { if (rounds[27] != round) { rounds[27] = round; newStates[newStateCnt++] = 27; } continue; } else continue; case (28) : if ((0xffffffffffffffffL & l) != 0L) { nextStates = nextStates12; break; } else continue; case (30) : if ((0xfffffdffffffffffL & l) != 0L) { nextStates = nextStates10; break; } else continue; case (31) : if ((0xffffffffffffffffL & l) != 0L) { nextStates = nextStates10; break; } else continue; case (32) : if ((0x20000000000L & l) != 0L) { if (curKind > 33) curKind = 33; continue; } else continue; case (34) : if ((0x1000000000L & l) != 0L) { if (curKind > 36) curKind = 36; if (rounds[35] != round) { rounds[35] = round; newStates[newStateCnt++] = 35; } continue; } else continue; case (35) : if ((0x3ff001000000000L & l) != 0L) { if (curKind > 36) curKind = 36; if (rounds[35] != round) { rounds[35] = round; newStates[newStateCnt++] = 35; } continue; } else continue; case (36) : if ((0x3ff000000000000L & l) != 0L) { nextStates = nextStates23; break; } else continue; case (51) : if ((0x800000000000L & l) != 0L) { nextStates = nextStates28; break; } else continue; case (62) : if ((0x1000000000000L & l) != 0L) { if (curKind > 28) curKind = 28; nextStates = nextStates31; break; } else continue; default : continue; } j = nextStates.length; do { if (rounds[k = nextStates[--j]] != round) { rounds[k] = round; newStates[newStateCnt++] = k; } } while (j != 0); } while(i != 0); } else if (curChar < 128) { long l = 1L << (curChar & 077); do { switch(oldStates[--i]) { case (53) : if ((0xffffffffffffffffL & l) != 0L) { nextStates = nextStates24; break; } else continue; case (57) : if ((0xffffffffffffffffL & l) != 0L) { nextStates = nextStates27; break; } else continue; case (59) : if ((0xffffffffffffffffL & l) != 0L) { nextStates = nextStates25; break; } else continue; case (60) : if ((0xffffffffffffffffL & l) != 0L) { nextStates = nextStates25; break; } else continue; case (2) : if ((0x100000001000L & l) != 0L) { if (curKind > 26) curKind = 26; continue; } else continue; case (63) : if ((0x100000001000000L & l) != 0L) { if (rounds[64] != round) { rounds[64] = round; newStates[newStateCnt++] = 64; } continue; } else continue; case (64) : if ((0x7e0000007eL & l) != 0L) { if (curKind > 27) curKind = 27; nextStates = nextStates29; break; } else continue; case (65) : if ((0x100000001000L & l) != 0L) { if (curKind > 27) curKind = 27; continue; } else continue; case (67) : if ((0x100000001000L & l) != 0L) { if (curKind > 28) curKind = 28; continue; } else continue; case (40) : if ((0x2000000020L & l) != 0L) { nextStates = nextStates14; break; } else continue; case (5) : if ((0x2000000020L & l) != 0L) { nextStates = nextStates2; break; } else continue; case (8) : if ((0x5000000050L & l) != 0L) { if (curKind > 29) curKind = 29; continue; } else continue; case (44) : if ((0x2000000020L & l) != 0L) { nextStates = nextStates18; break; } else continue; case (48) : if ((0x2000000020L & l) != 0L) { nextStates = nextStates21; break; } else continue; case (10) : if ((0xffffffffefffffffL & l) != 0L) { if (rounds[11] != round) { rounds[11] = round; newStates[newStateCnt++] = 11; } continue; } else continue; case (12) : if ((0x10000000L & l) != 0L) { nextStates = nextStates5; break; } else continue; case (13) : if ((0x14404410000000L & l) != 0L) { if (rounds[11] != round) { rounds[11] = round; newStates[newStateCnt++] = 11; } continue; } else continue; case (19) : if ((0xffffffffefffffffL & l) != 0L) { nextStates = nextStates7; break; } else continue; case (20) : if ((0x10000000L & l) != 0L) { nextStates = nextStates9; break; } else continue; case (21) : if ((0x14404410000000L & l) != 0L) { nextStates = nextStates7; break; } else continue; case (27) : if ((0x1L & l) != 0L) { nextStates = nextStates12; break; } else continue; case (28) : if ((0xfffffffffffffffeL & l) != 0L) { nextStates = nextStates12; break; } else continue; case (30) : if ((0xffffffffffffffffL & l) != 0L) { nextStates = nextStates10; break; } else continue; case (31) : if ((0xfffffffffffffffeL & l) != 0L) { nextStates = nextStates10; break; } else continue; case (34) : if ((0x7fffffe87fffffeL & l) != 0L) { if (curKind > 36) curKind = 36; if (rounds[35] != round) { rounds[35] = round; newStates[newStateCnt++] = 35; } continue; } else continue; case (35) : if ((0x7fffffe87fffffeL & l) != 0L) { if (curKind > 36) curKind = 36; if (rounds[35] != round) { rounds[35] = round; newStates[newStateCnt++] = 35; } continue; } else continue; case (29) : if ((0x1L & l) != 0L) { nextStates = nextStates11; break; } else continue; default : continue; } j = nextStates.length; do { if (rounds[k = nextStates[--j]] != round) { rounds[k] = round; newStates[newStateCnt++] = k; } } while (j != 0); } while(i != 0); } else { do { switch(oldStates[--i]) { case (53) : if (CharInRangeList(rangeMoves0)) { nextStates = nextStates24; break; } else continue; case (57) : if (CharInRangeList(rangeMoves0)) { nextStates = nextStates27; break; } else continue; case (59) : if (CharInRangeList(rangeMoves0)) { nextStates = nextStates25; break; } else continue; case (60) : if (CharInRangeList(rangeMoves0)) { nextStates = nextStates25; break; } else continue; case (10) : if (CharInRangeList(rangeMoves0)) { if (rounds[11] != round) { rounds[11] = round; newStates[newStateCnt++] = 11; } continue; } else continue; case (19) : if (CharInRangeList(rangeMoves0)) { nextStates = nextStates7; break; } else continue; case (28) : if (CharInRangeList(rangeMoves0)) { nextStates = nextStates12; break; } else continue; case (30) : if (CharInRangeList(rangeMoves0)) { nextStates = nextStates10; break; } else continue; case (31) : if (CharInRangeList(rangeMoves0)) { nextStates = nextStates10; break; } else continue; case (34) : if (CharInRangeList(rangeMoves1)) { if (curKind > 36) curKind = 36; if (rounds[35] != round) { rounds[35] = round; newStates[newStateCnt++] = 35; } continue; } else continue; case (35) : if (CharInRangeList(rangeMoves2)) { if (curKind > 36) curKind = 36; if (rounds[35] != round) { rounds[35] = round; newStates[newStateCnt++] = 35; } continue; } else continue; default : continue; } j = nextStates.length; do { if (rounds[k = nextStates[--j]] != round) { rounds[k] = round; newStates[newStateCnt++] = k; } } while (j != 0); } while(i != 0); } return; } } static private final int[] allInitStates = { 0, 3, 9, 18, 33, 34, 36, 51, 62, }; static final int[] initState_34 = { 18, }; static final int[] initState_36 = { 34, }; static final int[] initState_39 = { 9, }; static final int[] initState_40 = { 33, }; static final int[] initState_46 = { 3, }; static final int[] initState_47 = { 51, }; static final int[] initState_48 = { 36, 62, }; static final int[] initState_49 = { 0, 36, }; static final int[][] initStates = { allInitStates, 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, initState_34, null, initState_36, null, null, initState_39, initState_40, null, null, null, null, null, initState_46, initState_47, initState_48, initState_49, initState_49, initState_49, initState_49, initState_49, initState_49, initState_49, initState_49, initState_49, null, null, null, null, null, null, null, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, null, null, null, null, initState_36, null, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, initState_36, null, null, null, null, null, }; static final int[] startStates_0 = { 35, }; static final int[] startStates_1 = { 4, }; static final int[] startStates_2 = { 27, }; void StartNfa(int pos, long active0) { switch (pos) { case (0) : curPos = 1; break; case (1) : curPos = 2; if ((active0 & 0x40000L) != 0L) { startStateSet = startStates_2; break; } else if ((active0 & 0xc00020000L) != 0L) { matchedToken.kind = 36; startStateSet = startStates_0; break; } else if ((active0 & 0x4000L) != 0L) { startStateSet = startStates_1; break; } return; case (2) : curPos = 3; if ((active0 & 0xc00023ffeL) != 0L) { if (matchedPos != 1) { matchedToken.kind = 36; matchedPos = 1; } startStateSet = startStates_0; break; } return; case (3) : curPos = 4; if ((active0 & 0xc00023ffeL) != 0L) { if (matchedPos != 2) { matchedToken.kind = 36; matchedPos = 2; } startStateSet = startStates_0; break; } return; case (4) : curPos = 5; if ((active0 & 0x400000000L) != 0L) { startStateSet = startStates_0; break; } else if ((active0 & 0x800023ffeL) != 0L) { if (matchedPos != 3) { matchedToken.kind = 36; matchedPos = 3; } startStateSet = startStates_0; break; } return; case (5) : curPos = 6; if ((active0 & 0x800000820L) != 0L) { startStateSet = startStates_0; break; } else if ((active0 & 0x237deL) != 0L) { if (matchedPos != 4) { matchedToken.kind = 36; matchedPos = 4; } startStateSet = startStates_0; break; } return; case (6) : curPos = 7; if ((active0 & 0xaL) != 0L) { startStateSet = startStates_0; break; } else if ((active0 & 0x237d4L) != 0L) { if (matchedPos != 5) { matchedToken.kind = 36; matchedPos = 5; } startStateSet = startStates_0; break; } return; case (7) : curPos = 8; if ((active0 & 0x10L) != 0L) { startStateSet = startStates_0; break; } else if ((active0 & 0x237c4L) != 0L) { if (matchedPos != 6) { matchedToken.kind = 36; matchedPos = 6; } startStateSet = startStates_0; break; } return; case (8) : curPos = 9; if ((active0 & 0x21000L) != 0L) { startStateSet = startStates_0; break; } else if ((active0 & 0x27c4L) != 0L) { if (matchedPos != 7) { matchedToken.kind = 36; matchedPos = 7; } startStateSet = startStates_0; break; } return; case (9) : curPos = 10; if ((active0 & 0xc0L) != 0L) { startStateSet = startStates_0; break; } else if ((active0 & 0x2704L) != 0L) { if (matchedPos != 8) { matchedToken.kind = 36; matchedPos = 8; } startStateSet = startStates_0; break; } return; case (10) : curPos = 11; if ((active0 & 0x2200L) != 0L) { startStateSet = startStates_0; break; } else if ((active0 & 0x504L) != 0L) { if (matchedPos != 9) { matchedToken.kind = 36; matchedPos = 9; } startStateSet = startStates_0; break; } return; case (11) : curPos = 12; if ((active0 & 0x404L) != 0L) { startStateSet = startStates_0; break; } else if ((active0 & 0x100L) != 0L) { if (matchedPos != 10) { matchedToken.kind = 36; matchedPos = 10; } startStateSet = startStates_0; break; } return; default : curPos = pos + 1; return; } newStateCnt = startStateSet.length; MoveNfa(startStateSet, stateSet2); if (curKind != 2147483647) { if (matchedPos != pos) { matchedToken.kind = curKind; matchedPos = pos; } else if (curKind < matchedToken.kind) matchedToken.kind = curKind; curKind = 2147483647; } return; } long oldActive0 = 0L, newActive0 = 0L; private final void MoveStringLiteralDfa() throws java.io.IOException { MainLoop: for (;;) { switch(curChar) { case (46) : { matchedToken.kind = 14; curPos = 1; startStateSet = startStates_1; break MainLoop; } case (41) : { matchedToken.kind = 19; curPos = 1; return; } case (40) : { matchedToken.kind = 18; curPos = 1; startStateSet = startStates_2; break MainLoop; } case (35) : { matchedToken.kind = 2147483647; oldActive0 = 0x3ffeL; break; } case (32) : { matchedToken.kind = 20; curPos = 1; return; } case (125) : { matchedToken.kind = 16; curPos = 1; return; } case (123) : { matchedToken.kind = 15; curPos = 1; return; } case (116) : { matchedToken.kind = 2147483647; oldActive0 = 0x400020000L; break; } case (13) : { matchedToken.kind = 23; curPos = 1; return; } case (10) : { matchedToken.kind = 22; curPos = 1; return; } case (9) : { matchedToken.kind = 21; curPos = 1; return; } case (102) : { matchedToken.kind = 2147483647; oldActive0 = 0x800000000L; break; } default : { matchedToken.kind = 2147483647; if (curChar < 128) { if ((startStateSet = initStates[curChar]) == null) { curPos = 1; return; } } else if (curChar < 256) { if (startsNfa[curChar]) startStateSet = allInitStates; else { curPos = 1; return; } } else startStateSet = allInitStates; StartNfa(0, 0L); return; } } switch(curChar = input_stream.readChar()) { case (97) : { if (((newActive0 = oldActive0 & 0x800000000L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (86) : { if (((newActive0 = oldActive0 & 0x10L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (84) : { if (((newActive0 = oldActive0 & 0x400L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (79) : { if (((newActive0 = oldActive0 & 0x80L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (76) : { if (((newActive0 = oldActive0 & 0x20L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (73) : { if (((newActive0 = oldActive0 & 0x40L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (71) : { if (((newActive0 = oldActive0 & 0x8L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (69) : { if (((newActive0 = oldActive0 & 0x800L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (68) : { if (((newActive0 = oldActive0 & 0x4L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (67) : { if (((newActive0 = oldActive0 & 0x2102L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (65) : { if (((newActive0 = oldActive0 & 0x1200L)) == 0L) { StartNfa(1, oldActive0); return; } break; } case (114) : { if (((newActive0 = oldActive0 & 0x400020000L)) == 0L) { StartNfa(1, oldActive0); return; } break; } default : { StartNfa(1, oldActive0); return; } } switch(curChar = input_stream.readChar()) { case (100) : { if (((oldActive0 = newActive0 & 0x800L)) == 0L) { StartNfa(2, newActive0); return; } break; } case (97) : { if (((oldActive0 = newActive0 & 0x20000L)) == 0L) { StartNfa(2, newActive0); return; } break; } case (117) : { if (((oldActive0 = newActive0 & 0x400000080L)) == 0L) { StartNfa(2, newActive0); return; } break; } case (114) : { if (((oldActive0 = newActive0 & 0x8L)) == 0L) { StartNfa(2, newActive0); return; } break; } case (111) : { if (((oldActive0 = newActive0 & 0x2100L)) == 0L) { StartNfa(2, newActive0); return; } break; } case (110) : { if (((oldActive0 = newActive0 & 0x40L)) == 0L) { StartNfa(2, newActive0); return; } break; } case (108) : { if (((oldActive0 = newActive0 & 0x800001202L)) == 0L) { StartNfa(2, newActive0); return; } break; } case (105) : { if (((oldActive0 = newActive0 & 0x24L)) == 0L) { StartNfa(2, newActive0); return; } break; } case (101) : { if (((oldActive0 = newActive0 & 0x410L)) == 0L) { StartNfa(2, newActive0); return; } break; } default : { StartNfa(2, newActive0); return; } } switch(curChar = input_stream.readChar()) { case (99) : { if (((newActive0 = oldActive0 & 0x44L)) == 0L) { StartNfa(3, oldActive0); return; } break; } case (97) : { if (((newActive0 = oldActive0 & 0xaL)) == 0L) { StartNfa(3, oldActive0); return; } break; } case (118) : { if (((newActive0 = oldActive0 & 0x20000L)) == 0L) { StartNfa(3, oldActive0); return; } break; } case (116) : { if (((newActive0 = oldActive0 & 0x1280L)) == 0L) { StartNfa(3, oldActive0); return; } break; } case (115) : { if (((newActive0 = oldActive0 & 0x800000020L)) == 0L) { StartNfa(3, oldActive0); return; } break; } case (114) : { if (((newActive0 = oldActive0 & 0x410L)) == 0L) { StartNfa(3, oldActive0); return; } break; } case (110) : { if (((newActive0 = oldActive0 & 0x2100L)) == 0L) { StartNfa(3, oldActive0); return; } break; } case (103) : { if (((newActive0 = oldActive0 & 0x800L)) == 0L) { StartNfa(3, oldActive0); return; } break; } case (101) : { if ((oldActive0 & 0x400000000L) != 0L) { matchedToken.kind = 34; matchedPos = 3; curPos = 4; startStateSet = startStates_0; break MainLoop; } StartNfa(3, oldActive0); return; } default : { StartNfa(3, oldActive0); return; } } switch(curChar = input_stream.readChar()) { case (86) : { if (((oldActive0 = newActive0 & 0x200L)) == 0L) { StartNfa(4, newActive0); return; } break; } case (69) : { if (((oldActive0 = newActive0 & 0x1000L)) == 0L) { StartNfa(4, newActive0); return; } break; } case (116) : { if ((newActive0 & 0x20L) != 0L) { matchedToken.kind = 5; matchedPos = 4; curPos = 5; startStateSet = startStates_0; break MainLoop; } if (((oldActive0 = newActive0 & 0x14L)) == 0L) { StartNfa(4, newActive0); return; } break; } case (115) : { if (((oldActive0 = newActive0 & 0x22102L)) == 0L) { StartNfa(4, newActive0); return; } break; } case (112) : { if (((oldActive0 = newActive0 & 0x8L)) == 0L) { StartNfa(4, newActive0); return; } break; } case (111) : { if (((oldActive0 = newActive0 & 0x40L)) == 0L) { StartNfa(4, newActive0); return; } break; } case (109) : { if (((oldActive0 = newActive0 & 0x400L)) == 0L) { StartNfa(4, newActive0); return; } break; } case (103) : { if (((oldActive0 = newActive0 & 0x80L)) == 0L) { StartNfa(4, newActive0); return; } break; } case (101) : { if ((newActive0 & 0x800L) != 0L) { matchedToken.kind = 11; matchedPos = 4; curPos = 5; startStateSet = startStates_0; break MainLoop; } else if ((newActive0 & 0x800000000L) != 0L) { matchedToken.kind = 35; matchedPos = 4; curPos = 5; startStateSet = startStates_0; break MainLoop; } StartNfa(4, newActive0); return; } default : { StartNfa(4, newActive0); return; } } switch(curChar = input_stream.readChar()) { case (100) : { if (((newActive0 = oldActive0 & 0x1000L)) == 0L) { StartNfa(5, oldActive0); return; } break; } case (86) : { if (((newActive0 = oldActive0 & 0x400L)) == 0L) { StartNfa(5, oldActive0); return; } break; } case (116) : { if (((newActive0 = oldActive0 & 0x22100L)) == 0L) { StartNfa(5, oldActive0); return; } break; } case (115) : { if ((oldActive0 & 0x2L) != 0L) { matchedToken.kind = 1; matchedPos = 5; curPos = 6; startStateSet = startStates_0; break MainLoop; } StartNfa(5, oldActive0); return; } case (111) : { if (((newActive0 = oldActive0 & 0x80L)) == 0L) { StartNfa(5, oldActive0); return; } break; } case (109) : { if (((newActive0 = oldActive0 & 0x40L)) == 0L) { StartNfa(5, oldActive0); return; } break; } case (105) : { if (((newActive0 = oldActive0 & 0x4L)) == 0L) { StartNfa(5, oldActive0); return; } break; } case (104) : { if ((oldActive0 & 0x8L) != 0L) { matchedToken.kind = 3; matchedPos = 5; curPos = 6; startStateSet = startStates_0; break MainLoop; } StartNfa(5, oldActive0); return; } case (101) : { if (((newActive0 = oldActive0 & 0x210L)) == 0L) { StartNfa(5, oldActive0); return; } break; } default : { StartNfa(5, oldActive0); return; } } switch(curChar = input_stream.readChar()) { case (97) : { if (((oldActive0 = newActive0 & 0x20000L)) == 0L) { StartNfa(6, newActive0); return; } break; } case (86) : { if (((oldActive0 = newActive0 & 0x100L)) == 0L) { StartNfa(6, newActive0); return; } break; } case (69) : { if (((oldActive0 = newActive0 & 0x2000L)) == 0L) { StartNfa(6, newActive0); return; } break; } case (120) : { if ((newActive0 & 0x10L) != 0L) { matchedToken.kind = 4; matchedPos = 6; curPos = 7; startStateSet = startStates_0; break MainLoop; } StartNfa(6, newActive0); return; } case (114) : { if (((oldActive0 = newActive0 & 0x200L)) == 0L) { StartNfa(6, newActive0); return; } break; } case (111) : { if (((oldActive0 = newActive0 & 0x4L)) == 0L) { StartNfa(6, newActive0); return; } break; } case (105) : { if (((oldActive0 = newActive0 & 0xc0L)) == 0L) { StartNfa(6, newActive0); return; } break; } case (103) : { if (((oldActive0 = newActive0 & 0x1000L)) == 0L) { StartNfa(6, newActive0); return; } break; } case (101) : { if (((oldActive0 = newActive0 & 0x400L)) == 0L) { StartNfa(6, newActive0); return; } break; } default : { StartNfa(6, newActive0); return; } } switch(curChar = input_stream.readChar()) { case (100) : { if (((newActive0 = oldActive0 & 0x2000L)) == 0L) { StartNfa(7, oldActive0); return; } break; } case (116) : { if ((oldActive0 & 0x20000L) != 0L) { matchedToken.kind = 17; matchedPos = 7; curPos = 8; startStateSet = startStates_0; break MainLoop; } if (((newActive0 = oldActive0 & 0x200L)) == 0L) { StartNfa(7, oldActive0); return; } break; } case (114) : { if (((newActive0 = oldActive0 & 0x400L)) == 0L) { StartNfa(7, oldActive0); return; } break; } case (110) : { if (((newActive0 = oldActive0 & 0xc4L)) == 0L) { StartNfa(7, oldActive0); return; } break; } case (101) : { if ((oldActive0 & 0x1000L) != 0L) { matchedToken.kind = 12; matchedPos = 7; curPos = 8; startStateSet = startStates_0; break MainLoop; } if (((newActive0 = oldActive0 & 0x100L)) == 0L) { StartNfa(7, oldActive0); return; } break; } default : { StartNfa(7, oldActive0); return; } } switch(curChar = input_stream.readChar()) { case (97) : { if (((oldActive0 = newActive0 & 0x4L)) == 0L) { StartNfa(8, newActive0); return; } break; } case (116) : { if (((oldActive0 = newActive0 & 0x400L)) == 0L) { StartNfa(8, newActive0); return; } break; } case (114) : { if (((oldActive0 = newActive0 & 0x100L)) == 0L) { StartNfa(8, newActive0); return; } break; } case (103) : { if ((newActive0 & 0x40L) != 0L) { matchedToken.kind = 6; matchedPos = 8; curPos = 9; startStateSet = startStates_0; break MainLoop; } else if ((newActive0 & 0x80L) != 0L) { matchedToken.kind = 7; matchedPos = 8; curPos = 9; startStateSet = startStates_0; break MainLoop; } if (((oldActive0 = newActive0 & 0x2000L)) == 0L) { StartNfa(8, newActive0); return; } break; } case (101) : { if (((oldActive0 = newActive0 & 0x200L)) == 0L) { StartNfa(8, newActive0); return; } break; } default : { StartNfa(8, newActive0); return; } } switch(curChar = input_stream.readChar()) { case (120) : { if ((oldActive0 & 0x200L) != 0L) { matchedToken.kind = 9; matchedPos = 9; curPos = 10; startStateSet = startStates_0; break MainLoop; } StartNfa(9, oldActive0); return; } case (116) : { if (((newActive0 = oldActive0 & 0x100L)) == 0L) { StartNfa(9, oldActive0); return; } break; } case (114) : { if (((newActive0 = oldActive0 & 0x4L)) == 0L) { StartNfa(9, oldActive0); return; } break; } case (101) : { if ((oldActive0 & 0x2000L) != 0L) { matchedToken.kind = 13; matchedPos = 9; curPos = 10; startStateSet = startStates_0; break MainLoop; } if (((newActive0 = oldActive0 & 0x400L)) == 0L) { StartNfa(9, oldActive0); return; } break; } default : { StartNfa(9, oldActive0); return; } } switch(curChar = input_stream.readChar()) { case (121) : { if ((newActive0 & 0x4L) != 0L) { matchedToken.kind = 2; matchedPos = 10; curPos = 11; startStateSet = startStates_0; break MainLoop; } StartNfa(10, newActive0); return; } case (120) : { if ((newActive0 & 0x400L) != 0L) { matchedToken.kind = 10; matchedPos = 10; curPos = 11; startStateSet = startStates_0; break MainLoop; } StartNfa(10, newActive0); return; } case (101) : { if (((oldActive0 = newActive0 & 0x100L)) == 0L) { StartNfa(10, newActive0); return; } break; } default : { StartNfa(10, newActive0); return; } } switch(curChar = input_stream.readChar()) { case (120) : { if ((oldActive0 & 0x100L) != 0L) { matchedToken.kind = 8; matchedPos = 11; curPos = 12; startStateSet = startStates_0; break MainLoop; } StartNfa(11, oldActive0); return; } default : { StartNfa(11, oldActive0); return; } } } curChar = input_stream.readChar(); newStateCnt = startStateSet.length; MoveNfa(startStateSet, stateSet2); if (curKind != 2147483647) { matchedToken.kind = curKind; matchedPos = curPos++; curKind = 2147483647; } else curPos++; } static final long[] toIgnoreInBNF = { 0x1fbc0ffffeL, }; static final long[] strKinds = { 0xc00fffffeL, }; static final boolean[] startsNfa = { true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, true, false, true, false, false, true, true, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, true, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, }; private ASCII_UCodeESC_CharStream input_stream; private int[] rounds = new int[68]; private int[] stateSet1 = new int[68]; private int[] stateSet2 = new int[68]; private int[] nextStates; int curPos; protected char curChar; int curKind = 2147483647; ParserTokenManager me; public ParserTokenManager(ASCII_UCodeESC_CharStream stream) { input_stream = stream; me = this; } public void ReInit(ASCII_UCodeESC_CharStream stream) { int i; curKind = 2147483647; curPos = matchedPos = newStateCnt = round = 0; startStateSet = null; curChar = (char)0; input_stream = stream; for (i = 68; i-- > 0;) rounds[i] = 0; } int newStateCnt; int round; int[] tmpStates = stateSet1; int matchedPos; Token matchedToken; private int[] startStateSet; public final Token getNextToken() throws ParseError { matchedToken = new Token(); try { for (;;) { matchedPos = curPos = 0; curChar = input_stream.BeginToken(); matchedToken.beginLine = input_stream.getLine(); matchedToken.beginColumn = input_stream.getColumn(); MoveStringLiteralDfa(); while (newStateCnt != 0) { curChar = input_stream.readChar(); MoveNfa(stateSet1 = stateSet2, stateSet2 = tmpStates); tmpStates = stateSet1; if (curKind != 2147483647) { matchedToken.kind = curKind; curKind = 2147483647; matchedPos = curPos++; } else curPos++; }; if (matchedToken.kind != 2147483647) { if (matchedPos + 1 < curPos) input_stream.backup(curPos - matchedPos - 1); if ((toIgnoreInBNF[matchedToken.kind >> 6] & (1L << (matchedToken.kind & 077))) != 0) { if ((strKinds[matchedToken.kind >> 6] & (1L << (matchedToken.kind & 077))) != 0) matchedToken.image = strLiteralImages[matchedToken.kind]; else matchedToken.image = input_stream.GetImage(); matchedToken.endLine = input_stream.getLine(); matchedToken.endColumn = input_stream.getColumn(); return matchedToken; } matchedToken.kind = 2147483647; } else { me.error_line = input_stream.getLine(); me.error_column = input_stream.getColumn(); input_stream.backup(1); me.error_after = curPos <= 1 ? "" : add_escapes(input_stream.GetImage()); me.LexicalError(); throw new ParseError(); } } } catch (java.io.IOException e) { if (matchedToken.kind != 2147483647 && matchedToken.kind != 0) { if (matchedPos + 1 < curPos) input_stream.backup(curPos - matchedPos - 1); matchedToken.endLine = input_stream.getLine(); matchedToken.endColumn = input_stream.getColumn(); if ((toIgnoreInBNF[matchedToken.kind >> 6] & (1L << (matchedToken.kind & 077))) != 0) { if ((strKinds[matchedToken.kind >> 6] & (1L << (matchedToken.kind & 077))) != 0) matchedToken.image = strLiteralImages[matchedToken.kind]; else matchedToken.image = input_stream.GetImage(); return matchedToken; } else { matchedToken.kind = 2147483647; return getNextToken(); } } else if (curPos != 0) // Something has been scanned { me.error_line = input_stream.getLine(); me.error_column = input_stream.getColumn(); input_stream.backup(1); me.error_after = curPos <= 1 ? "" : add_escapes(input_stream.GetImage()); me.LexicalError(); throw new ParseError(); } else { matchedToken.kind = 0; matchedToken.image = ""; input_stream.Done(); return matchedToken; } } } protected int error_line, error_column; protected String error_after; protected void LexicalError() { System.err.println("Lexical error at line " + error_line + ", column " + error_column + ". Encountered: \"" + add_escapes(String.valueOf(curChar)) + "\""); } }