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