1d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen/* Generated By:JJTree&JavaCC: Do not edit this line. AddressListParserTokenManager.java */ 2d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen/* 3d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * Copyright 2004 the mime4j project 4d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * 5d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * Licensed under the Apache License, Version 2.0 (the "License"); 6d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * you may not use this file except in compliance with the License. 7d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * You may obtain a copy of the License at 8d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * 9d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * http://www.apache.org/licenses/LICENSE-2.0 10d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * 11d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * Unless required by applicable law or agreed to in writing, software 12d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * distributed under the License is distributed on an "AS IS" BASIS, 13d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * See the License for the specific language governing permissions and 15d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen * limitations under the License. 16d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen */ 17d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpackage org.apache.james.mime4j.field.address.parser; 18d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 19d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic class AddressListParserTokenManager implements AddressListParserConstants 20d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 21d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen // Keeps track of how many levels of comment nesting 22d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen // we've encountered. This is only used when the 2nd 23d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen // level is reached, for example ((this)), not (this). 24d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen // This is because the outermost level must be treated 25d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen // specially anyway, because the outermost ")" has a 26d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen // different token type than inner ")" instances. 27d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen static int commentNest; 28d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen public java.io.PrintStream debugStream = System.out; 29d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; } 30d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStopStringLiteralDfa_0(int pos, long active0) 31d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 32d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch (pos) 33d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 34d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 35d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return -1; 36d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 37d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 38d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfa_0(int pos, long active0) 39d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 40d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1); 41d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 42d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStopAtPos(int pos, int kind) 43d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 44d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 45d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = pos; 46d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return pos + 1; 47d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 48d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfaWithStates_0(int pos, int kind, int state) 49d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 50d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 51d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = pos; 52d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 53d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return pos + 1; } 54d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_0(state, pos + 1); 55d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 56d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveStringLiteralDfa0_0() 57d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 58d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(curChar) 59d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 60d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 10: 61d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 2); 62d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 13: 63d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 1); 64d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 34: 65d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 28); 66d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 40: 67d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 19); 68d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 44: 69d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 3); 70d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 46: 71d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 9); 72d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 58: 73d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 4); 74d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 59: 75d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 5); 76d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 60: 77d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 6); 78d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 62: 79d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 7); 80d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 64: 81d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 8); 82d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 91: 83d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 15); 84d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 85d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_0(1, 0); 86d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 87d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 88d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final void jjCheckNAdd(int state) 89d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 90d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (jjrounds[state] != jjround) 91d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 92d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[jjnewStateCnt++] = state; 93d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjrounds[state] = jjround; 94d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 95d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 96d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final void jjAddStates(int start, int end) 97d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 98d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen do { 99d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[jjnewStateCnt++] = jjnextStates[start]; 100d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while (start++ != end); 101d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 102d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final void jjCheckNAddTwoStates(int state1, int state2) 103d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 104d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(state1); 105d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(state2); 106d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 107d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final void jjCheckNAddStates(int start, int end) 108d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 109d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen do { 110d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(jjnextStates[start]); 111d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while (start++ != end); 112d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 113d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final void jjCheckNAddStates(int start) 114d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 115d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(jjnextStates[start]); 116d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(jjnextStates[start + 1]); 117d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 118d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveNfa_0(int startState, int curPos) 119d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 120d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int[] nextStates; 121d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int startsAt = 0; 122d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjnewStateCnt = 3; 123d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i = 1; 124d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[0] = startState; 125d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int j, kind = 0x7fffffff; 126d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen for (;;) 127d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 128d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (++jjround == 0x7fffffff) 129d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ReInitRounds(); 130d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (curChar < 64) 131d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 132d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << curChar; 133d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 134d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 135d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 136d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 137d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 138d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0xa3ffacfa00000000L & l) != 0L) 139d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 140d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 14) 141d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 14; 142d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(2); 143d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 144d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if ((0x100000200L & l) != 0L) 145d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 146d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 10) 147d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 10; 148d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(0); 149d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 150d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 151d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 152d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0x100000200L & l) == 0L) 153d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 154d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 10; 155d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(0); 156d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 157d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 158d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0xa3ffecfa00000000L & l) == 0L) 159d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 160d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 14) 161d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 14; 162d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(2); 163d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 164d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 165d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 166d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 167d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 168d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if (curChar < 128) 169d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 170d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << (curChar & 077); 171d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 172d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 173d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 174d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 175d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 176d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 177d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0x7fffffffc7fffffeL & l) == 0L) 178d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 179d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 14) 180d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 14; 181d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(2); 182d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 183d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 184d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 185d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 186d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 187d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else 188d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 189d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i2 = (curChar & 0xff) >> 6; 190d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l2 = 1L << (curChar & 077); 191d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 192d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 193d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 194d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 195d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 196d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 197d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 198d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 199d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind != 0x7fffffff) 200d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 201d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 202d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = curPos; 203d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 0x7fffffff; 204d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 205d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ++curPos; 206d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt))) 207d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return curPos; 208d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 209d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return curPos; } 210d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 211d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 212d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStopStringLiteralDfa_2(int pos, long active0) 213d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 214d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch (pos) 215d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 216d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 217d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return -1; 218d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 219d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 220d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfa_2(int pos, long active0) 221d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 222d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0), pos + 1); 223d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 224d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfaWithStates_2(int pos, int kind, int state) 225d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 226d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 227d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = pos; 228d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 229d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return pos + 1; } 230d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_2(state, pos + 1); 231d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 232d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveStringLiteralDfa0_2() 233d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 234d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(curChar) 235d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 236d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 40: 237d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 22); 238d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 41: 239d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 20); 240d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 241d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_2(0, 0); 242d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 243d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 244d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenstatic final long[] jjbitVec0 = { 245d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL 246d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen}; 247d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveNfa_2(int startState, int curPos) 248d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 249d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int[] nextStates; 250d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int startsAt = 0; 251d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjnewStateCnt = 3; 252d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i = 1; 253d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[0] = startState; 254d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int j, kind = 0x7fffffff; 255d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen for (;;) 256d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 257d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (++jjround == 0x7fffffff) 258d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ReInitRounds(); 259d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (curChar < 64) 260d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 261d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << curChar; 262d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 263d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 264d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 265d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 266d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 267d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 23) 268d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 23; 269d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 270d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 271d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 21) 272d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 21; 273d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 274d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 275d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 276d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 277d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 278d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if (curChar < 128) 279d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 280d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << (curChar & 077); 281d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 282d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 283d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 284d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 285d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 286d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 23) 287d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 23; 288d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (curChar == 92) 289d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[jjnewStateCnt++] = 1; 290d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 291d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 292d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 21) 293d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 21; 294d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 295d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 296d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 23) 297d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 23; 298d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 299d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 300d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 301d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 302d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 303d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else 304d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 305d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i2 = (curChar & 0xff) >> 6; 306d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l2 = 1L << (curChar & 077); 307d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 308d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 309d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 310d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 311d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 312d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjbitVec0[i2] & l2) != 0L && kind > 23) 313d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 23; 314d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 315d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 316d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjbitVec0[i2] & l2) != 0L && kind > 21) 317d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 21; 318d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 319d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 320d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 321d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 322d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 323d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind != 0x7fffffff) 324d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 325d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 326d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = curPos; 327d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 0x7fffffff; 328d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 329d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ++curPos; 330d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt))) 331d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return curPos; 332d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 333d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return curPos; } 334d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 335d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 336d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStopStringLiteralDfa_4(int pos, long active0) 337d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 338d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch (pos) 339d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 340d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 341d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return -1; 342d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 343d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 344d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfa_4(int pos, long active0) 345d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 346d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_4(jjStopStringLiteralDfa_4(pos, active0), pos + 1); 347d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 348d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfaWithStates_4(int pos, int kind, int state) 349d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 350d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 351d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = pos; 352d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 353d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return pos + 1; } 354d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_4(state, pos + 1); 355d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 356d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveStringLiteralDfa0_4() 357d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 358d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(curChar) 359d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 360d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 34: 361d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 31); 362d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 363d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_4(0, 0); 364d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 365d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 366d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveNfa_4(int startState, int curPos) 367d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 368d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int[] nextStates; 369d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int startsAt = 0; 370d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjnewStateCnt = 3; 371d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i = 1; 372d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[0] = startState; 373d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int j, kind = 0x7fffffff; 374d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen for (;;) 375d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 376d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (++jjround == 0x7fffffff) 377d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ReInitRounds(); 378d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (curChar < 64) 379d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 380d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << curChar; 381d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 382d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 383d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 384d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 385d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 386d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 387d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0xfffffffbffffffffL & l) == 0L) 388d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 389d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 30) 390d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 30; 391d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(2); 392d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 393d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 394d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 29) 395d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 29; 396d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 397d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 398d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 399d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 400d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 401d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if (curChar < 128) 402d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 403d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << (curChar & 077); 404d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 405d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 406d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 407d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 408d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 409d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0xffffffffefffffffL & l) != 0L) 410d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 411d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 30) 412d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 30; 413d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(2); 414d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 415d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if (curChar == 92) 416d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[jjnewStateCnt++] = 1; 417d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 418d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 419d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 29) 420d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 29; 421d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 422d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 423d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0xffffffffefffffffL & l) == 0L) 424d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 425d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 30) 426d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 30; 427d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(2); 428d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 429d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 430d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 431d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 432d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 433d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else 434d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 435d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i2 = (curChar & 0xff) >> 6; 436d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l2 = 1L << (curChar & 077); 437d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 438d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 439d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 440d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 441d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 442d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 443d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjbitVec0[i2] & l2) == 0L) 444d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 445d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 30) 446d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 30; 447d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjCheckNAdd(2); 448d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 449d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 450d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjbitVec0[i2] & l2) != 0L && kind > 29) 451d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 29; 452d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 453d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 454d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 455d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 456d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 457d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind != 0x7fffffff) 458d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 459d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 460d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = curPos; 461d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 0x7fffffff; 462d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 463d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ++curPos; 464d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt))) 465d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return curPos; 466d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 467d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return curPos; } 468d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 469d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 470d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStopStringLiteralDfa_3(int pos, long active0) 471d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 472d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch (pos) 473d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 474d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 475d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return -1; 476d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 477d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 478d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfa_3(int pos, long active0) 479d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 480d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0), pos + 1); 481d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 482d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfaWithStates_3(int pos, int kind, int state) 483d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 484d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 485d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = pos; 486d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 487d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return pos + 1; } 488d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_3(state, pos + 1); 489d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 490d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveStringLiteralDfa0_3() 491d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 492d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(curChar) 493d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 494d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 40: 495d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 25); 496d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 41: 497d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 26); 498d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 499d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_3(0, 0); 500d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 501d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 502d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveNfa_3(int startState, int curPos) 503d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 504d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int[] nextStates; 505d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int startsAt = 0; 506d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjnewStateCnt = 3; 507d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i = 1; 508d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[0] = startState; 509d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int j, kind = 0x7fffffff; 510d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen for (;;) 511d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 512d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (++jjround == 0x7fffffff) 513d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ReInitRounds(); 514d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (curChar < 64) 515d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 516d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << curChar; 517d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 518d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 519d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 520d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 521d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 522d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 27) 523d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 27; 524d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 525d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 526d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 24) 527d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 24; 528d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 529d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 530d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 531d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 532d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 533d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if (curChar < 128) 534d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 535d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << (curChar & 077); 536d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 537d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 538d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 539d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 540d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 541d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 27) 542d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 27; 543d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (curChar == 92) 544d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[jjnewStateCnt++] = 1; 545d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 546d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 547d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 24) 548d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 24; 549d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 550d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 551d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 27) 552d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 27; 553d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 554d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 555d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 556d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 557d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 558d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else 559d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 560d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i2 = (curChar & 0xff) >> 6; 561d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l2 = 1L << (curChar & 077); 562d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 563d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 564d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 565d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 566d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 567d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjbitVec0[i2] & l2) != 0L && kind > 27) 568d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 27; 569d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 570d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 571d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjbitVec0[i2] & l2) != 0L && kind > 24) 572d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 24; 573d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 574d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 575d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 576d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 577d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 578d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind != 0x7fffffff) 579d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 580d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 581d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = curPos; 582d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 0x7fffffff; 583d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 584d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ++curPos; 585d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt))) 586d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return curPos; 587d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 588d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return curPos; } 589d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 590d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 591d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStopStringLiteralDfa_1(int pos, long active0) 592d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 593d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch (pos) 594d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 595d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 596d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return -1; 597d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 598d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 599d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfa_1(int pos, long active0) 600d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 601d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0), pos + 1); 602d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 603d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjStartNfaWithStates_1(int pos, int kind, int state) 604d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 605d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 606d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = pos; 607d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 608d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return pos + 1; } 609d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_1(state, pos + 1); 610d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 611d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveStringLiteralDfa0_1() 612d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 613d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(curChar) 614d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 615d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 93: 616d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjStopAtPos(0, 18); 617d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 618d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return jjMoveNfa_1(0, 0); 619d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 620d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 621d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int jjMoveNfa_1(int startState, int curPos) 622d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 623d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int[] nextStates; 624d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int startsAt = 0; 625d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjnewStateCnt = 3; 626d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i = 1; 627d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[0] = startState; 628d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int j, kind = 0x7fffffff; 629d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen for (;;) 630d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 631d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (++jjround == 0x7fffffff) 632d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ReInitRounds(); 633d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (curChar < 64) 634d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 635d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << curChar; 636d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 637d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 638d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 639d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 640d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 641d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 17) 642d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 17; 643d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 644d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 645d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 16) 646d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 16; 647d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 648d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 649d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 650d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 651d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 652d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if (curChar < 128) 653d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 654d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l = 1L << (curChar & 077); 655d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 656d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 657d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 658d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 659d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 660d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0xffffffffc7ffffffL & l) != 0L) 661d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 662d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 17) 663d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 17; 664d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 665d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if (curChar == 92) 666d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjstateSet[jjnewStateCnt++] = 1; 667d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 668d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 669d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind > 16) 670d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 16; 671d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 672d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 673d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((0xffffffffc7ffffffL & l) != 0L && kind > 17) 674d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 17; 675d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 676d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 677d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 678d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 679d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 680d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else 681d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 682d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i2 = (curChar & 0xff) >> 6; 683d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen long l2 = 1L << (curChar & 077); 684d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MatchLoop: do 685d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 686d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjstateSet[--i]) 687d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 688d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 689d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjbitVec0[i2] & l2) != 0L && kind > 17) 690d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 17; 691d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 692d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 693d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjbitVec0[i2] & l2) != 0L && kind > 16) 694d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 16; 695d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 696d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : break; 697d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 698d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } while(i != startsAt); 699d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 700d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (kind != 0x7fffffff) 701d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 702d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = kind; 703d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = curPos; 704d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen kind = 0x7fffffff; 705d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 706d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ++curPos; 707d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((i = jjnewStateCnt) == (startsAt = 3 - (jjnewStateCnt = startsAt))) 708d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return curPos; 709d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { curChar = input_stream.readChar(); } 710d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) { return curPos; } 711d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 712d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 713d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenstatic final int[] jjnextStates = { 714d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen}; 715d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic static final String[] jjstrLiteralImages = { 716d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen"", "\15", "\12", "\54", "\72", "\73", "\74", "\76", "\100", "\56", null, null, 717d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chennull, null, null, null, null, null, null, null, null, null, null, null, null, null, 718d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chennull, null, null, null, null, null, null, null, }; 719d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic static final String[] lexStateNames = { 720d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen "DEFAULT", 721d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen "INDOMAINLITERAL", 722d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen "INCOMMENT", 723d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen "NESTED_COMMENT", 724d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen "INQUOTEDSTRING", 725d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen}; 726d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic static final int[] jjnewLexState = { 727d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, -1, 0, 2, 0, -1, 3, -1, -1, 728d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen -1, -1, -1, 4, -1, -1, 0, -1, -1, 729d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen}; 730d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenstatic final long[] jjtoToken = { 731d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 0x800443ffL, 732d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen}; 733d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenstatic final long[] jjtoSkip = { 734d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 0x100400L, 735d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen}; 736d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenstatic final long[] jjtoSpecial = { 737d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 0x400L, 738d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen}; 739d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenstatic final long[] jjtoMore = { 740d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 0x7feb8000L, 741d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen}; 742d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprotected SimpleCharStream input_stream; 743d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int[] jjrounds = new int[3]; 744d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final int[] jjstateSet = new int[6]; 745d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy ChenStringBuffer image; 746d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenint jjimageLen; 747d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenint lengthOfMatch; 748d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprotected char curChar; 749d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic AddressListParserTokenManager(SimpleCharStream stream){ 750d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (SimpleCharStream.staticFlag) 751d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer."); 752d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen input_stream = stream; 753d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 754d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic AddressListParserTokenManager(SimpleCharStream stream, int lexState){ 755d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen this(stream); 756d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen SwitchTo(lexState); 757d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 758d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic void ReInit(SimpleCharStream stream) 759d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 760d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = jjnewStateCnt = 0; 761d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curLexState = defaultLexState; 762d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen input_stream = stream; 763d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ReInitRounds(); 764d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 765d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprivate final void ReInitRounds() 766d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 767d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int i; 768d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjround = 0x80000001; 769d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen for (i = 3; i-- > 0;) 770d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjrounds[i] = 0x80000000; 771d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 772d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic void ReInit(SimpleCharStream stream, int lexState) 773d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 774d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ReInit(stream); 775d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen SwitchTo(lexState); 776d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 777d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic void SwitchTo(int lexState) 778d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 779d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (lexState >= 5 || lexState < 0) 780d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); 781d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else 782d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curLexState = lexState; 783d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 784d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 785d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenprotected Token jjFillToken() 786d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 787d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen Token t = Token.newToken(jjmatchedKind); 788d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen t.kind = jjmatchedKind; 789d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen String im = jjstrLiteralImages[jjmatchedKind]; 790d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen t.image = (im == null) ? input_stream.GetImage() : im; 791d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen t.beginLine = input_stream.getBeginLine(); 792d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen t.beginColumn = input_stream.getBeginColumn(); 793d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen t.endLine = input_stream.getEndLine(); 794d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen t.endColumn = input_stream.getEndColumn(); 795d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return t; 796d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 797d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 798d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenint curLexState = 0; 799d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenint defaultLexState = 0; 800d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenint jjnewStateCnt; 801d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenint jjround; 802d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenint jjmatchedPos; 803d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenint jjmatchedKind; 804d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 805d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenpublic Token getNextToken() 806d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 807d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int kind; 808d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen Token specialToken = null; 809d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen Token matchedToken; 810d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int curPos = 0; 811d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 812d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen EOFLoop : 813d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen for (;;) 814d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 815d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try 816d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 817d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curChar = input_stream.BeginToken(); 818d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 819d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch(java.io.IOException e) 820d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 821d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = 0; 822d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen matchedToken = jjFillToken(); 823d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen matchedToken.specialToken = specialToken; 824d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return matchedToken; 825d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 826d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = null; 827d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 828d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 829d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen for (;;) 830d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 831d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(curLexState) 832d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 833d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 0: 834d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = 0x7fffffff; 835d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = 0; 836d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curPos = jjMoveStringLiteralDfa0_0(); 837d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 838d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 1: 839d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = 0x7fffffff; 840d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = 0; 841d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curPos = jjMoveStringLiteralDfa0_1(); 842d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 843d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 2: 844d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = 0x7fffffff; 845d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = 0; 846d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curPos = jjMoveStringLiteralDfa0_2(); 847d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 848d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 3: 849d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = 0x7fffffff; 850d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = 0; 851d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curPos = jjMoveStringLiteralDfa0_3(); 852d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 853d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 4: 854d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = 0x7fffffff; 855d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedPos = 0; 856d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curPos = jjMoveStringLiteralDfa0_4(); 857d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 858d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 859d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (jjmatchedKind != 0x7fffffff) 860d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 861d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (jjmatchedPos + 1 < curPos) 862d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen input_stream.backup(curPos - jjmatchedPos - 1); 863d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) 864d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 865d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen matchedToken = jjFillToken(); 866d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen matchedToken.specialToken = specialToken; 867d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen TokenLexicalActions(matchedToken); 868d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (jjnewLexState[jjmatchedKind] != -1) 869d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curLexState = jjnewLexState[jjmatchedKind]; 870d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen return matchedToken; 871d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 872d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) 873d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 874d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) 875d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 876d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen matchedToken = jjFillToken(); 877d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (specialToken == null) 878d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen specialToken = matchedToken; 879d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else 880d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 881d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen matchedToken.specialToken = specialToken; 882d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen specialToken = (specialToken.next = matchedToken); 883d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 884d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 885d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (jjnewLexState[jjmatchedKind] != -1) 886d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curLexState = jjnewLexState[jjmatchedKind]; 887d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen continue EOFLoop; 888d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 889d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen MoreLexicalActions(); 890d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (jjnewLexState[jjmatchedKind] != -1) 891d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curLexState = jjnewLexState[jjmatchedKind]; 892d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curPos = 0; 893d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjmatchedKind = 0x7fffffff; 894d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { 895d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen curChar = input_stream.readChar(); 896d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen continue; 897d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 898d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch (java.io.IOException e1) { } 899d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 900d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int error_line = input_stream.getEndLine(); 901d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen int error_column = input_stream.getEndColumn(); 902d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen String error_after = null; 903d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen boolean EOFSeen = false; 904d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen try { input_stream.readChar(); input_stream.backup(1); } 905d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen catch (java.io.IOException e1) { 906d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen EOFSeen = true; 907d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen error_after = curPos <= 1 ? "" : input_stream.GetImage(); 908d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (curChar == '\n' || curChar == '\r') { 909d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen error_line++; 910d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen error_column = 0; 911d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 912d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen else 913d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen error_column++; 914d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 915d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (!EOFSeen) { 916d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen input_stream.backup(1); 917d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen error_after = curPos <= 1 ? "" : input_stream.GetImage(); 918d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 919d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR); 920d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 921d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 922d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 923d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen 924d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenvoid MoreLexicalActions() 925d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 926d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen += (lengthOfMatch = jjmatchedPos + 1); 927d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjmatchedKind) 928d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 929d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 16 : 930d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 931d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 932d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen)); 933d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 934d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.deleteCharAt(image.length() - 2); 935d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 936d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 21 : 937d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 938d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 939d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen)); 940d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 941d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.deleteCharAt(image.length() - 2); 942d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 943d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 22 : 944d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 945d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 946d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen)); 947d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 948d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen commentNest = 1; 949d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 950d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 24 : 951d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 952d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 953d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen)); 954d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 955d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.deleteCharAt(image.length() - 2); 956d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 957d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 25 : 958d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 959d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 960d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen)); 961d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 962d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen ++commentNest; 963d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 964d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 26 : 965d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 966d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 967d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen)); 968d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 969d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen --commentNest; if (commentNest == 0) SwitchTo(INCOMMENT); 970d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 971d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 28 : 972d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 973d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 974d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen)); 975d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 976d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.deleteCharAt(image.length() - 1); 977d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 978d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 29 : 979d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 980d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 981d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen)); 982d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen jjimageLen = 0; 983d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.deleteCharAt(image.length() - 2); 984d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 985d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 986d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 987d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 988d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 989d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chenvoid TokenLexicalActions(Token matchedToken) 990d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen{ 991d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen switch(jjmatchedKind) 992d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen { 993d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 18 : 994d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 995d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 996d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); 997d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen matchedToken.image = image.toString(); 998d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 999d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen case 31 : 1000d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen if (image == null) 1001d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image = new StringBuffer(); 1002d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); 1003d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen matchedToken.image = image.substring(0, image.length() - 1); 1004d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 1005d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen default : 1006d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen break; 1007d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen } 1008d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 1009d186a38568ddec7efcba054ccc2fe8ed9b8945fcNancy Chen} 1010