KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > micronova > util > cc > mime > ParserTokenManager


1 /* Generated By:JavaCC: Do not edit this line. ParserTokenManager.java */
2 package com.micronova.util.cc.mime;
3 import java.io.*;
4 import java.util.*;
5 import com.micronova.util.*;
6
7 public class ParserTokenManager implements ParserConstants
8 {
9   public java.io.PrintStream JavaDoc debugStream = System.out;
10   public void setDebugStream(java.io.PrintStream JavaDoc ds) { debugStream = ds; }
11 private final int jjMoveStringLiteralDfa0_0()
12 {
13    return jjMoveNfa_0(1, 0);
14 }
15 private final void jjCheckNAdd(int state)
16 {
17    if (jjrounds[state] != jjround)
18    {
19       jjstateSet[jjnewStateCnt++] = state;
20       jjrounds[state] = jjround;
21    }
22 }
23 private final void jjAddStates(int start, int end)
24 {
25    do {
26       jjstateSet[jjnewStateCnt++] = jjnextStates[start];
27    } while (start++ != end);
28 }
29 private final void jjCheckNAddTwoStates(int state1, int state2)
30 {
31    jjCheckNAdd(state1);
32    jjCheckNAdd(state2);
33 }
34 private final void jjCheckNAddStates(int start, int end)
35 {
36    do {
37       jjCheckNAdd(jjnextStates[start]);
38    } while (start++ != end);
39 }
40 private final void jjCheckNAddStates(int start)
41 {
42    jjCheckNAdd(jjnextStates[start]);
43    jjCheckNAdd(jjnextStates[start + 1]);
44 }
45 static final long[] jjbitVec0 = {
46    0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
47 };
48 private final int jjMoveNfa_0(int startState, int curPos)
49 {
50    int[] nextStates;
51    int startsAt = 0;
52    jjnewStateCnt = 8;
53    int i = 1;
54    jjstateSet[0] = startState;
55    int j, kind = 0x7fffffff;
56    for (;;)
57    {
58       if (++jjround == 0x7fffffff)
59          ReInitRounds();
60       if (curChar < 64)
61       {
62          long l = 1L << curChar;
63          MatchLoop: do
64          {
65             switch(jjstateSet[--i])
66             {
67                case 1:
68                   if ((0xd7ff7ffeffffd9ffL & l) != 0L)
69                   {
70                      if (kind > 6)
71                         kind = 6;
72                      jjCheckNAdd(7);
73                   }
74                   else if ((0x100002600L & l) != 0L)
75                   {
76                      if (kind > 1)
77                         kind = 1;
78                      jjCheckNAdd(0);
79                   }
80                   else if (curChar == 61)
81                   {
82                      if (kind > 4)
83                         kind = 4;
84                   }
85                   else if (curChar == 59)
86                   {
87                      if (kind > 3)
88                         kind = 3;
89                   }
90                   else if (curChar == 47)
91                   {
92                      if (kind > 2)
93                         kind = 2;
94                   }
95                   if (curChar == 34)
96                      jjCheckNAddTwoStates(5, 6);
97                   break;
98                case 0:
99                   if ((0x100002600L & l) == 0L)
100                      break;
101                   if (kind > 1)
102                      kind = 1;
103                   jjCheckNAdd(0);
104                   break;
105                case 2:
106                   if (curChar == 59 && kind > 3)
107                      kind = 3;
108                   break;
109                case 3:
110                   if (curChar == 61 && kind > 4)
111                      kind = 4;
112                   break;
113                case 4:
114                   if (curChar == 34)
115                      jjCheckNAddTwoStates(5, 6);
116                   break;
117                case 5:
118                   if ((0xfffffffbffffffffL & l) != 0L)
119                      jjCheckNAddTwoStates(5, 6);
120                   break;
121                case 6:
122                   if (curChar == 34 && kind > 5)
123                      kind = 5;
124                   break;
125                case 7:
126                   if ((0xd7ff7ffeffffd9ffL & l) == 0L)
127                      break;
128                   if (kind > 6)
129                      kind = 6;
130                   jjCheckNAdd(7);
131                   break;
132                default : break;
133             }
134          } while(i != startsAt);
135       }
136       else if (curChar < 128)
137       {
138          long l = 1L << (curChar & 077);
139          MatchLoop: do
140          {
141             switch(jjstateSet[--i])
142             {
143                case 1:
144                case 7:
145                   if (kind > 6)
146                      kind = 6;
147                   jjCheckNAdd(7);
148                   break;
149                case 5:
150                   jjAddStates(0, 1);
151                   break;
152                default : break;
153             }
154          } while(i != startsAt);
155       }
156       else
157       {
158          int i2 = (curChar & 0xff) >> 6;
159          long l2 = 1L << (curChar & 077);
160          MatchLoop: do
161          {
162             switch(jjstateSet[--i])
163             {
164                case 1:
165                case 7:
166                   if ((jjbitVec0[i2] & l2) == 0L)
167                      break;
168                   if (kind > 6)
169                      kind = 6;
170                   jjCheckNAdd(7);
171                   break;
172                case 5:
173                   if ((jjbitVec0[i2] & l2) != 0L)
174                      jjAddStates(0, 1);
175                   break;
176                default : break;
177             }
178          } while(i != startsAt);
179       }
180       if (kind != 0x7fffffff)
181       {
182          jjmatchedKind = kind;
183          jjmatchedPos = curPos;
184          kind = 0x7fffffff;
185       }
186       ++curPos;
187       if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
188          return curPos;
189       try { curChar = input_stream.readChar(); }
190       catch(java.io.IOException JavaDoc e) { return curPos; }
191    }
192 }
193 static final int[] jjnextStates = {
194    5, 6,
195 };
196 public static final String JavaDoc[] jjstrLiteralImages = {
197 "", null, null, null, null, null, null, };
198 public static final String JavaDoc[] lexStateNames = {
199    "DEFAULT",
200 };
201 protected SimpleCharStream input_stream;
202 private final int[] jjrounds = new int[8];
203 private final int[] jjstateSet = new int[16];
204 StringBuffer JavaDoc image;
205 int jjimageLen;
206 int lengthOfMatch;
207 protected char curChar;
208 public ParserTokenManager(SimpleCharStream stream)
209 {
210    if (SimpleCharStream.staticFlag)
211       throw new Error JavaDoc("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
212    input_stream = stream;
213 }
214 public ParserTokenManager(SimpleCharStream stream, int lexState)
215 {
216    this(stream);
217    SwitchTo(lexState);
218 }
219 public void ReInit(SimpleCharStream stream)
220 {
221    jjmatchedPos = jjnewStateCnt = 0;
222    curLexState = defaultLexState;
223    input_stream = stream;
224    ReInitRounds();
225 }
226 private final void ReInitRounds()
227 {
228    int i;
229    jjround = 0x80000001;
230    for (i = 8; i-- > 0;)
231       jjrounds[i] = 0x80000000;
232 }
233 public void ReInit(SimpleCharStream stream, int lexState)
234 {
235    ReInit(stream);
236    SwitchTo(lexState);
237 }
238 public void SwitchTo(int lexState)
239 {
240    if (lexState >= 1 || lexState < 0)
241       throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
242    else
243       curLexState = lexState;
244 }
245
246 protected Token jjFillToken()
247 {
248    Token t = Token.newToken(jjmatchedKind);
249    t.kind = jjmatchedKind;
250    String JavaDoc im = jjstrLiteralImages[jjmatchedKind];
251    t.image = (im == null) ? input_stream.GetImage() : im;
252    t.beginLine = input_stream.getBeginLine();
253    t.beginColumn = input_stream.getBeginColumn();
254    t.endLine = input_stream.getEndLine();
255    t.endColumn = input_stream.getEndColumn();
256    return t;
257 }
258
259 int curLexState = 0;
260 int defaultLexState = 0;
261 int jjnewStateCnt;
262 int jjround;
263 int jjmatchedPos;
264 int jjmatchedKind;
265
266 public Token getNextToken()
267 {
268   int kind;
269   Token specialToken = null;
270   Token matchedToken;
271   int curPos = 0;
272
273   EOFLoop :
274   for (;;)
275   {
276    try
277    {
278       curChar = input_stream.BeginToken();
279    }
280    catch(java.io.IOException JavaDoc e)
281    {
282       jjmatchedKind = 0;
283       matchedToken = jjFillToken();
284       return matchedToken;
285    }
286    image = null;
287    jjimageLen = 0;
288
289    jjmatchedKind = 0x7fffffff;
290    jjmatchedPos = 0;
291    curPos = jjMoveStringLiteralDfa0_0();
292    if (jjmatchedKind != 0x7fffffff)
293    {
294       if (jjmatchedPos + 1 < curPos)
295          input_stream.backup(curPos - jjmatchedPos - 1);
296          matchedToken = jjFillToken();
297          TokenLexicalActions(matchedToken);
298          return matchedToken;
299    }
300    int error_line = input_stream.getEndLine();
301    int error_column = input_stream.getEndColumn();
302    String JavaDoc error_after = null;
303    boolean EOFSeen = false;
304    try { input_stream.readChar(); input_stream.backup(1); }
305    catch (java.io.IOException JavaDoc e1) {
306       EOFSeen = true;
307       error_after = curPos <= 1 ? "" : input_stream.GetImage();
308       if (curChar == '\n' || curChar == '\r') {
309          error_line++;
310          error_column = 0;
311       }
312       else
313          error_column++;
314    }
315    if (!EOFSeen) {
316       input_stream.backup(1);
317       error_after = curPos <= 1 ? "" : input_stream.GetImage();
318    }
319    throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
320   }
321 }
322
323 void TokenLexicalActions(Token matchedToken)
324 {
325    switch(jjmatchedKind)
326    {
327       case 5 :
328         if (image == null)
329             image = new StringBuffer JavaDoc(new String JavaDoc(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
330          else
331             image.append(new String JavaDoc(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))));
332                                   matchedToken.image = image.substring(1, image.length() - 1);
333          break;
334       default :
335          break;
336    }
337 }
338 }
339
Popular Tags