View Javadoc

1   /* Generated By:JavaCC: Do not edit this line. OgnlParserTokenManager.java */
2   package org.apache.commons.ognl;
3   import java.math.*;
4   
5   /** Token Manager. */
6   public class OgnlParserTokenManager implements OgnlParserConstants
7   {
8         /** Holds the last value computed by a constant token. */
9       Object literalValue;
10        /** Holds the last character escaped or in a character literal. */
11      private char charValue;
12        /** Holds char literal start token. */
13      private char charLiteralStartQuote;
14        /** Holds the last string literal parsed. */
15      private StringBuilder stringBuilder;
16  
17        /** Converts an escape sequence into a character value. */
18      private char escapeChar()
19      {
20          int ofs = image.length() - 1;
21          switch ( image.charAt(ofs) ) {
22              case 'n':   return '\u005cn';
23              case 'r':   return '\u005cr';
24              case 't':   return '\u005ct';
25              case 'b':   return '\u005cb';
26              case 'f':   return '\u005cf';
27              case '\u005c\u005c':  return '\u005c\u005c';
28              case '\u005c'':  return '\u005c'';
29              case '\u005c"':  return '\u005c"';
30          }
31  
32            // Otherwise, it's an octal number.  Find the backslash and convert.
33          while ( image.charAt(--ofs) != '\u005c\u005c' )
34            {}
35          int value = 0;
36          while ( ++ofs < image.length() )
37              value = (value << 3) | (image.charAt(ofs) - '0');
38          return (char) value;
39      }
40  
41      private Object makeInt()
42      {
43          Object  result;
44          String  s = image.toString();
45          int     base = 10;
46  
47          if ( s.charAt(0) == '0' )
48              base = (s.length() > 1 && (s.charAt(1) == 'x' || s.charAt(1) == 'X'))? 16 : 8;
49          if ( base == 16 )
50              s = s.substring(2); // Trim the 0x off the front
51          switch ( s.charAt(s.length()-1) ) {
52              case 'l': case 'L':
53                  result = Long.valueOf( s.substring(0,s.length()-1), base );
54                  break;
55  
56              case 'h': case 'H':
57                  result = new BigInteger( s.substring(0,s.length()-1), base );
58                  break;
59  
60              default:
61                  result = Integer.valueOf( s, base );
62                  break;
63          }
64          return result;
65      }
66  
67      private Object makeFloat()
68      {
69          String s = image.toString();
70          switch ( s.charAt(s.length()-1) ) {
71              case 'f': case 'F':
72                  return Float.valueOf( s );
73  
74              case 'b': case 'B':
75                  return new BigDecimal( s.substring(0,s.length()-1) );
76  
77              case 'd': case 'D':
78              default:
79                  return Double.valueOf( s );
80          }
81      }
82  
83    /** Debug output. */
84    public  java.io.PrintStream debugStream = System.out;
85    /** Set debug output. */
86    public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
87  private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1)
88  {
89     switch (pos)
90     {
91        case 0:
92           if ((active0 & 0x201c4055d555540L) != 0L)
93           {
94              jjmatchedKind = 64;
95              return 1;
96           }
97           if ((active0 & 0x400000000000000L) != 0L)
98              return 1;
99           if ((active0 & 0x10000000000000L) != 0L)
100             return 3;
101          if ((active0 & 0x80000000000L) != 0L)
102             return 9;
103          return -1;
104       case 1:
105          if ((active0 & 0x201c00550045500L) != 0L)
106          {
107             if (jjmatchedPos != 1)
108             {
109                jjmatchedKind = 64;
110                jjmatchedPos = 1;
111             }
112             return 1;
113          }
114          if ((active0 & 0x4000d510040L) != 0L)
115             return 1;
116          return -1;
117       case 2:
118          if ((active0 & 0x1c40400004000L) != 0L)
119          {
120             jjmatchedKind = 64;
121             jjmatchedPos = 2;
122             return 1;
123          }
124          if ((active0 & 0x200000155041500L) != 0L)
125             return 1;
126          return -1;
127       case 3:
128          if ((active0 & 0x1400400004000L) != 0L)
129             return 1;
130          if ((active0 & 0x840000000000L) != 0L)
131          {
132             jjmatchedKind = 64;
133             jjmatchedPos = 3;
134             return 1;
135          }
136          return -1;
137       case 4:
138          if ((active0 & 0x800000000000L) != 0L)
139             return 1;
140          if ((active0 & 0x40000000000L) != 0L)
141          {
142             jjmatchedKind = 64;
143             jjmatchedPos = 4;
144             return 1;
145          }
146          return -1;
147       case 5:
148          if ((active0 & 0x40000000000L) != 0L)
149          {
150             jjmatchedKind = 64;
151             jjmatchedPos = 5;
152             return 1;
153          }
154          return -1;
155       case 6:
156          if ((active0 & 0x40000000000L) != 0L)
157          {
158             jjmatchedKind = 64;
159             jjmatchedPos = 6;
160             return 1;
161          }
162          return -1;
163       case 7:
164          if ((active0 & 0x40000000000L) != 0L)
165          {
166             jjmatchedKind = 64;
167             jjmatchedPos = 7;
168             return 1;
169          }
170          return -1;
171       case 8:
172          if ((active0 & 0x40000000000L) != 0L)
173          {
174             jjmatchedKind = 64;
175             jjmatchedPos = 8;
176             return 1;
177          }
178          return -1;
179       default :
180          return -1;
181    }
182 }
183 private final int jjStartNfa_0(int pos, long active0, long active1)
184 {
185    return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0, active1), pos + 1);
186 }
187 private int jjStopAtPos(int pos, int kind)
188 {
189    jjmatchedKind = kind;
190    jjmatchedPos = pos;
191    return pos + 1;
192 }
193 private int jjMoveStringLiteralDfa0_0()
194 {
195    switch(curChar)
196    {
197       case 33:
198          jjmatchedKind = 41;
199          return jjMoveStringLiteralDfa1_0(0x20000L);
200       case 34:
201          return jjStopAtPos(0, 70);
202       case 35:
203          jjmatchedKind = 51;
204          return jjMoveStringLiteralDfa1_0(0x6000000000000L);
205       case 36:
206          return jjStartNfaWithStates_0(0, 58, 1);
207       case 37:
208          return jjStopAtPos(0, 39);
209       case 38:
210          jjmatchedKind = 13;
211          return jjMoveStringLiteralDfa1_0(0x80L);
212       case 39:
213          return jjStopAtPos(0, 69);
214       case 40:
215          return jjStopAtPos(0, 44);
216       case 41:
217          return jjStopAtPos(0, 45);
218       case 42:
219          return jjStopAtPos(0, 37);
220       case 43:
221          return jjStopAtPos(0, 35);
222       case 44:
223          return jjStopAtPos(0, 1);
224       case 45:
225          return jjStopAtPos(0, 36);
226       case 46:
227          return jjStartNfaWithStates_0(0, 43, 9);
228       case 47:
229          return jjStopAtPos(0, 38);
230       case 58:
231          return jjStopAtPos(0, 4);
232       case 60:
233          jjmatchedKind = 19;
234          return jjMoveStringLiteralDfa1_0(0x20800000L);
235       case 61:
236          jjmatchedKind = 2;
237          return jjMoveStringLiteralDfa1_0(0x8000L);
238       case 62:
239          jjmatchedKind = 21;
240          return jjMoveStringLiteralDfa1_0(0x282000000L);
241       case 63:
242          return jjStopAtPos(0, 3);
243       case 64:
244          return jjStopAtPos(0, 56);
245       case 91:
246          return jjStartNfaWithStates_0(0, 52, 3);
247       case 93:
248          return jjStopAtPos(0, 53);
249       case 94:
250          return jjStopAtPos(0, 11);
251       case 96:
252          return jjStopAtPos(0, 68);
253       case 97:
254          return jjMoveStringLiteralDfa1_0(0x100L);
255       case 98:
256          return jjMoveStringLiteralDfa1_0(0x4400L);
257       case 101:
258          return jjMoveStringLiteralDfa1_0(0x10000L);
259       case 102:
260          return jjMoveStringLiteralDfa1_0(0x800000000000L);
261       case 103:
262          return jjMoveStringLiteralDfa1_0(0x4400000L);
263       case 105:
264          return jjMoveStringLiteralDfa1_0(0x40008000000L);
265       case 108:
266          return jjMoveStringLiteralDfa1_0(0x1100000L);
267       case 110:
268          return jjMoveStringLiteralDfa1_0(0x201000010040000L);
269       case 111:
270          return jjMoveStringLiteralDfa1_0(0x40L);
271       case 115:
272          return jjMoveStringLiteralDfa1_0(0x140000000L);
273       case 116:
274          return jjMoveStringLiteralDfa1_0(0x400000000000L);
275       case 117:
276          return jjMoveStringLiteralDfa1_0(0x400000000L);
277       case 120:
278          return jjMoveStringLiteralDfa1_0(0x1000L);
279       case 123:
280          return jjStopAtPos(0, 54);
281       case 124:
282          jjmatchedKind = 9;
283          return jjMoveStringLiteralDfa1_0(0x20L);
284       case 125:
285          return jjStopAtPos(0, 55);
286       case 126:
287          return jjStopAtPos(0, 40);
288       default :
289          return jjMoveNfa_0(0, 0);
290    }
291 }
292 private int jjMoveStringLiteralDfa1_0(long active0)
293 {
294    try { curChar = input_stream.readChar(); }
295    catch(java.io.IOException e) {
296       jjStopStringLiteralDfa_0(0, active0, 0L);
297       return 1;
298    }
299    switch(curChar)
300    {
301       case 38:
302          if ((active0 & 0x80L) != 0L)
303             return jjStopAtPos(1, 7);
304          break;
305       case 60:
306          if ((active0 & 0x20000000L) != 0L)
307             return jjStopAtPos(1, 29);
308          break;
309       case 61:
310          if ((active0 & 0x8000L) != 0L)
311             return jjStopAtPos(1, 15);
312          else if ((active0 & 0x20000L) != 0L)
313             return jjStopAtPos(1, 17);
314          else if ((active0 & 0x800000L) != 0L)
315             return jjStopAtPos(1, 23);
316          else if ((active0 & 0x2000000L) != 0L)
317             return jjStopAtPos(1, 25);
318          break;
319       case 62:
320          if ((active0 & 0x80000000L) != 0L)
321          {
322             jjmatchedKind = 31;
323             jjmatchedPos = 1;
324          }
325          return jjMoveStringLiteralDfa2_0(active0, 0x200000000L);
326       case 97:
327          return jjMoveStringLiteralDfa2_0(active0, 0x800000004000L);
328       case 101:
329          return jjMoveStringLiteralDfa2_0(active0, 0x200000000040000L);
330       case 104:
331          return jjMoveStringLiteralDfa2_0(active0, 0x140000000L);
332       case 110:
333          if ((active0 & 0x8000000L) != 0L)
334          {
335             jjmatchedKind = 27;
336             jjmatchedPos = 1;
337          }
338          return jjMoveStringLiteralDfa2_0(active0, 0x40000000100L);
339       case 111:
340          return jjMoveStringLiteralDfa2_0(active0, 0x10001400L);
341       case 113:
342          if ((active0 & 0x10000L) != 0L)
343             return jjStartNfaWithStates_0(1, 16, 1);
344          break;
345       case 114:
346          if ((active0 & 0x40L) != 0L)
347             return jjStartNfaWithStates_0(1, 6, 1);
348          return jjMoveStringLiteralDfa2_0(active0, 0x4400000000000L);
349       case 115:
350          return jjMoveStringLiteralDfa2_0(active0, 0x400000000L);
351       case 116:
352          if ((active0 & 0x100000L) != 0L)
353          {
354             jjmatchedKind = 20;
355             jjmatchedPos = 1;
356          }
357          else if ((active0 & 0x400000L) != 0L)
358          {
359             jjmatchedKind = 22;
360             jjmatchedPos = 1;
361          }
362          return jjMoveStringLiteralDfa2_0(active0, 0x2000005000000L);
363       case 117:
364          return jjMoveStringLiteralDfa2_0(active0, 0x1000000000000L);
365       case 124:
366          if ((active0 & 0x20L) != 0L)
367             return jjStopAtPos(1, 5);
368          break;
369       default :
370          break;
371    }
372    return jjStartNfa_0(0, active0, 0L);
373 }
374 private int jjMoveStringLiteralDfa2_0(long old0, long active0)
375 {
376    if (((active0 &= old0)) == 0L)
377       return jjStartNfa_0(0, old0, 0L);
378    try { curChar = input_stream.readChar(); }
379    catch(java.io.IOException e) {
380       jjStopStringLiteralDfa_0(1, active0, 0L);
381       return 2;
382    }
383    switch(curChar)
384    {
385       case 62:
386          if ((active0 & 0x200000000L) != 0L)
387             return jjStopAtPos(2, 33);
388          break;
389       case 100:
390          if ((active0 & 0x100L) != 0L)
391             return jjStartNfaWithStates_0(2, 8, 1);
392          break;
393       case 101:
394          if ((active0 & 0x1000000L) != 0L)
395             return jjStartNfaWithStates_0(2, 24, 1);
396          else if ((active0 & 0x4000000L) != 0L)
397             return jjStartNfaWithStates_0(2, 26, 1);
398          break;
399       case 104:
400          return jjMoveStringLiteralDfa3_0(active0, 0x2000400000000L);
401       case 108:
402          if ((active0 & 0x40000000L) != 0L)
403             return jjStartNfaWithStates_0(2, 30, 1);
404          return jjMoveStringLiteralDfa3_0(active0, 0x1800000000000L);
405       case 110:
406          return jjMoveStringLiteralDfa3_0(active0, 0x4000L);
407       case 111:
408          return jjMoveStringLiteralDfa3_0(active0, 0x4000000000000L);
409       case 113:
410          if ((active0 & 0x40000L) != 0L)
411             return jjStartNfaWithStates_0(2, 18, 1);
412          break;
413       case 114:
414          if ((active0 & 0x400L) != 0L)
415             return jjStartNfaWithStates_0(2, 10, 1);
416          else if ((active0 & 0x1000L) != 0L)
417             return jjStartNfaWithStates_0(2, 12, 1);
418          else if ((active0 & 0x100000000L) != 0L)
419             return jjStartNfaWithStates_0(2, 32, 1);
420          break;
421       case 115:
422          return jjMoveStringLiteralDfa3_0(active0, 0x40000000000L);
423       case 116:
424          if ((active0 & 0x10000000L) != 0L)
425             return jjStartNfaWithStates_0(2, 28, 1);
426          break;
427       case 117:
428          return jjMoveStringLiteralDfa3_0(active0, 0x400000000000L);
429       case 119:
430          if ((active0 & 0x200000000000000L) != 0L)
431             return jjStartNfaWithStates_0(2, 57, 1);
432          break;
433       default :
434          break;
435    }
436    return jjStartNfa_0(1, active0, 0L);
437 }
438 private int jjMoveStringLiteralDfa3_0(long old0, long active0)
439 {
440    if (((active0 &= old0)) == 0L)
441       return jjStartNfa_0(1, old0, 0L);
442    try { curChar = input_stream.readChar(); }
443    catch(java.io.IOException e) {
444       jjStopStringLiteralDfa_0(2, active0, 0L);
445       return 3;
446    }
447    switch(curChar)
448    {
449       case 100:
450          if ((active0 & 0x4000L) != 0L)
451             return jjStartNfaWithStates_0(3, 14, 1);
452          break;
453       case 101:
454          if ((active0 & 0x400000000000L) != 0L)
455             return jjStartNfaWithStates_0(3, 46, 1);
456          break;
457       case 105:
458          return jjMoveStringLiteralDfa4_0(active0, 0x2000000000000L);
459       case 108:
460          if ((active0 & 0x1000000000000L) != 0L)
461             return jjStartNfaWithStates_0(3, 48, 1);
462          break;
463       case 111:
464          return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000L);
465       case 114:
466          if ((active0 & 0x400000000L) != 0L)
467             return jjStartNfaWithStates_0(3, 34, 1);
468          break;
469       case 115:
470          return jjMoveStringLiteralDfa4_0(active0, 0x800000000000L);
471       case 116:
472          return jjMoveStringLiteralDfa4_0(active0, 0x40000000000L);
473       default :
474          break;
475    }
476    return jjStartNfa_0(2, active0, 0L);
477 }
478 private int jjMoveStringLiteralDfa4_0(long old0, long active0)
479 {
480    if (((active0 &= old0)) == 0L)
481       return jjStartNfa_0(2, old0, 0L);
482    try { curChar = input_stream.readChar(); }
483    catch(java.io.IOException e) {
484       jjStopStringLiteralDfa_0(3, active0, 0L);
485       return 4;
486    }
487    switch(curChar)
488    {
489       case 97:
490          return jjMoveStringLiteralDfa5_0(active0, 0x40000000000L);
491       case 101:
492          if ((active0 & 0x800000000000L) != 0L)
493             return jjStartNfaWithStates_0(4, 47, 1);
494          break;
495       case 115:
496          if ((active0 & 0x2000000000000L) != 0L)
497             return jjStopAtPos(4, 49);
498          break;
499       case 116:
500          if ((active0 & 0x4000000000000L) != 0L)
501             return jjStopAtPos(4, 50);
502          break;
503       default :
504          break;
505    }
506    return jjStartNfa_0(3, active0, 0L);
507 }
508 private int jjMoveStringLiteralDfa5_0(long old0, long active0)
509 {
510    if (((active0 &= old0)) == 0L)
511       return jjStartNfa_0(3, old0, 0L);
512    try { curChar = input_stream.readChar(); }
513    catch(java.io.IOException e) {
514       jjStopStringLiteralDfa_0(4, active0, 0L);
515       return 5;
516    }
517    switch(curChar)
518    {
519       case 110:
520          return jjMoveStringLiteralDfa6_0(active0, 0x40000000000L);
521       default :
522          break;
523    }
524    return jjStartNfa_0(4, active0, 0L);
525 }
526 private int jjMoveStringLiteralDfa6_0(long old0, long active0)
527 {
528    if (((active0 &= old0)) == 0L)
529       return jjStartNfa_0(4, old0, 0L);
530    try { curChar = input_stream.readChar(); }
531    catch(java.io.IOException e) {
532       jjStopStringLiteralDfa_0(5, active0, 0L);
533       return 6;
534    }
535    switch(curChar)
536    {
537       case 99:
538          return jjMoveStringLiteralDfa7_0(active0, 0x40000000000L);
539       default :
540          break;
541    }
542    return jjStartNfa_0(5, active0, 0L);
543 }
544 private int jjMoveStringLiteralDfa7_0(long old0, long active0)
545 {
546    if (((active0 &= old0)) == 0L)
547       return jjStartNfa_0(5, old0, 0L);
548    try { curChar = input_stream.readChar(); }
549    catch(java.io.IOException e) {
550       jjStopStringLiteralDfa_0(6, active0, 0L);
551       return 7;
552    }
553    switch(curChar)
554    {
555       case 101:
556          return jjMoveStringLiteralDfa8_0(active0, 0x40000000000L);
557       default :
558          break;
559    }
560    return jjStartNfa_0(6, active0, 0L);
561 }
562 private int jjMoveStringLiteralDfa8_0(long old0, long active0)
563 {
564    if (((active0 &= old0)) == 0L)
565       return jjStartNfa_0(6, old0, 0L);
566    try { curChar = input_stream.readChar(); }
567    catch(java.io.IOException e) {
568       jjStopStringLiteralDfa_0(7, active0, 0L);
569       return 8;
570    }
571    switch(curChar)
572    {
573       case 111:
574          return jjMoveStringLiteralDfa9_0(active0, 0x40000000000L);
575       default :
576          break;
577    }
578    return jjStartNfa_0(7, active0, 0L);
579 }
580 private int jjMoveStringLiteralDfa9_0(long old0, long active0)
581 {
582    if (((active0 &= old0)) == 0L)
583       return jjStartNfa_0(7, old0, 0L);
584    try { curChar = input_stream.readChar(); }
585    catch(java.io.IOException e) {
586       jjStopStringLiteralDfa_0(8, active0, 0L);
587       return 9;
588    }
589    switch(curChar)
590    {
591       case 102:
592          if ((active0 & 0x40000000000L) != 0L)
593             return jjStartNfaWithStates_0(9, 42, 1);
594          break;
595       default :
596          break;
597    }
598    return jjStartNfa_0(8, active0, 0L);
599 }
600 private int jjStartNfaWithStates_0(int pos, int kind, int state)
601 {
602    jjmatchedKind = kind;
603    jjmatchedPos = pos;
604    try { curChar = input_stream.readChar(); }
605    catch(java.io.IOException e) { return pos + 1; }
606    return jjMoveNfa_0(state, pos + 1);
607 }
608 static final long[] jjbitVec0 = {
609    0x1ff00000fffffffeL, 0xffffffffffffc000L, 0xffffffffL, 0x600000000000000L
610 };
611 static final long[] jjbitVec2 = {
612    0x0L, 0x0L, 0x0L, 0xff7fffffff7fffffL
613 };
614 static final long[] jjbitVec3 = {
615    0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
616 };
617 static final long[] jjbitVec4 = {
618    0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffL, 0x0L
619 };
620 static final long[] jjbitVec5 = {
621    0xffffffffffffffffL, 0xffffffffffffffffL, 0x0L, 0x0L
622 };
623 static final long[] jjbitVec6 = {
624    0x3fffffffffffL, 0x0L, 0x0L, 0x0L
625 };
626 private int jjMoveNfa_0(int startState, int curPos)
627 {
628    int startsAt = 0;
629    jjnewStateCnt = 27;
630    int i = 1;
631    jjstateSet[0] = startState;
632    int kind = 0x7fffffff;
633    for (;;)
634    {
635       if (++jjround == 0x7fffffff)
636          ReInitRounds();
637       if (curChar < 64)
638       {
639          long l = 1L << curChar;
640          do
641          {
642             switch(jjstateSet[--i])
643             {
644                case 0:
645                   if ((0x3ff000000000000L & l) != 0L)
646                      jjCheckNAddStates(0, 5);
647                   else if (curChar == 46)
648                      jjCheckNAdd(9);
649                   else if (curChar == 36)
650                   {
651                      if (kind > 64)
652                         kind = 64;
653                      jjCheckNAdd(1);
654                   }
655                   if ((0x3fe000000000000L & l) != 0L)
656                   {
657                      if (kind > 80)
658                         kind = 80;
659                      jjCheckNAddTwoStates(6, 7);
660                   }
661                   else if (curChar == 48)
662                   {
663                      if (kind > 80)
664                         kind = 80;
665                      jjCheckNAddStates(6, 8);
666                   }
667                   break;
668                case 1:
669                   if ((0x3ff001000000000L & l) == 0L)
670                      break;
671                   if (kind > 64)
672                      kind = 64;
673                   jjCheckNAdd(1);
674                   break;
675                case 3:
676                   if ((0x41000000000L & l) != 0L)
677                      jjstateSet[jjnewStateCnt++] = 4;
678                   break;
679                case 5:
680                   if ((0x3fe000000000000L & l) == 0L)
681                      break;
682                   if (kind > 80)
683                      kind = 80;
684                   jjCheckNAddTwoStates(6, 7);
685                   break;
686                case 6:
687                   if ((0x3ff000000000000L & l) == 0L)
688                      break;
689                   if (kind > 80)
690                      kind = 80;
691                   jjCheckNAddTwoStates(6, 7);
692                   break;
693                case 8:
694                   if (curChar == 46)
695                      jjCheckNAdd(9);
696                   break;
697                case 9:
698                   if ((0x3ff000000000000L & l) == 0L)
699                      break;
700                   if (kind > 81)
701                      kind = 81;
702                   jjCheckNAddStates(9, 11);
703                   break;
704                case 11:
705                   if ((0x280000000000L & l) != 0L)
706                      jjCheckNAdd(12);
707                   break;
708                case 12:
709                   if ((0x3ff000000000000L & l) == 0L)
710                      break;
711                   if (kind > 81)
712                      kind = 81;
713                   jjCheckNAddTwoStates(12, 13);
714                   break;
715                case 14:
716                   if ((0x3ff000000000000L & l) != 0L)
717                      jjCheckNAddStates(0, 5);
718                   break;
719                case 15:
720                   if ((0x3ff000000000000L & l) != 0L)
721                      jjCheckNAddTwoStates(15, 16);
722                   break;
723                case 16:
724                   if (curChar != 46)
725                      break;
726                   if (kind > 81)
727                      kind = 81;
728                   jjCheckNAddStates(12, 14);
729                   break;
730                case 17:
731                   if ((0x3ff000000000000L & l) == 0L)
732                      break;
733                   if (kind > 81)
734                      kind = 81;
735                   jjCheckNAddStates(12, 14);
736                   break;
737                case 18:
738                   if ((0x3ff000000000000L & l) != 0L)
739                      jjCheckNAddTwoStates(18, 19);
740                   break;
741                case 20:
742                   if ((0x280000000000L & l) != 0L)
743                      jjCheckNAdd(21);
744                   break;
745                case 21:
746                   if ((0x3ff000000000000L & l) == 0L)
747                      break;
748                   if (kind > 81)
749                      kind = 81;
750                   jjCheckNAddTwoStates(21, 13);
751                   break;
752                case 22:
753                   if ((0x3ff000000000000L & l) != 0L)
754                      jjCheckNAddTwoStates(22, 13);
755                   break;
756                case 23:
757                   if (curChar != 48)
758                      break;
759                   if (kind > 80)
760                      kind = 80;
761                   jjCheckNAddStates(6, 8);
762                   break;
763                case 24:
764                   if ((0xff000000000000L & l) == 0L)
765                      break;
766                   if (kind > 80)
767                      kind = 80;
768                   jjCheckNAddTwoStates(24, 7);
769                   break;
770                case 26:
771                   if ((0x3ff000000000000L & l) == 0L)
772                      break;
773                   if (kind > 80)
774                      kind = 80;
775                   jjCheckNAddTwoStates(26, 7);
776                   break;
777                default : break;
778             }
779          } while(i != startsAt);
780       }
781       else if (curChar < 128)
782       {
783          long l = 1L << (curChar & 077);
784          do
785          {
786             switch(jjstateSet[--i])
787             {
788                case 0:
789                   if ((0x7fffffe87fffffeL & l) != 0L)
790                   {
791                      if (kind > 64)
792                         kind = 64;
793                      jjCheckNAdd(1);
794                   }
795                   else if (curChar == 91)
796                      jjstateSet[jjnewStateCnt++] = 3;
797                   break;
798                case 1:
799                   if ((0x7fffffe87fffffeL & l) == 0L)
800                      break;
801                   if (kind > 64)
802                      kind = 64;
803                   jjCheckNAdd(1);
804                   break;
805                case 2:
806                   if (curChar == 91)
807                      jjstateSet[jjnewStateCnt++] = 3;
808                   break;
809                case 3:
810                   if ((0x1000000040000000L & l) != 0L)
811                      jjstateSet[jjnewStateCnt++] = 4;
812                   break;
813                case 4:
814                   if (curChar == 93)
815                      kind = 67;
816                   break;
817                case 7:
818                   if ((0x110000001100L & l) != 0L && kind > 80)
819                      kind = 80;
820                   break;
821                case 10:
822                   if ((0x2000000020L & l) != 0L)
823                      jjAddStates(15, 16);
824                   break;
825                case 13:
826                   if ((0x5400000054L & l) != 0L && kind > 81)
827                      kind = 81;
828                   break;
829                case 19:
830                   if ((0x2000000020L & l) != 0L)
831                      jjAddStates(17, 18);
832                   break;
833                case 25:
834                   if ((0x100000001000000L & l) != 0L)
835                      jjCheckNAdd(26);
836                   break;
837                case 26:
838                   if ((0x7e0000007eL & l) == 0L)
839                      break;
840                   if (kind > 80)
841                      kind = 80;
842                   jjCheckNAddTwoStates(26, 7);
843                   break;
844                default : break;
845             }
846          } while(i != startsAt);
847       }
848       else
849       {
850          int hiByte = (int)(curChar >> 8);
851          int i1 = hiByte >> 6;
852          long l1 = 1L << (hiByte & 077);
853          int i2 = (curChar & 0xff) >> 6;
854          long l2 = 1L << (curChar & 077);
855          do
856          {
857             switch(jjstateSet[--i])
858             {
859                case 0:
860                case 1:
861                   if (!jjCanMove_0(hiByte, i1, i2, l1, l2))
862                      break;
863                   if (kind > 64)
864                      kind = 64;
865                   jjCheckNAdd(1);
866                   break;
867                default : break;
868             }
869          } while(i != startsAt);
870       }
871       if (kind != 0x7fffffff)
872       {
873          jjmatchedKind = kind;
874          jjmatchedPos = curPos;
875          kind = 0x7fffffff;
876       }
877       ++curPos;
878       if ((i = jjnewStateCnt) == (startsAt = 27 - (jjnewStateCnt = startsAt)))
879          return curPos;
880       try { curChar = input_stream.readChar(); }
881       catch(java.io.IOException e) { return curPos; }
882    }
883 }
884 private final int jjStopStringLiteralDfa_2(int pos, long active0, long active1)
885 {
886    switch (pos)
887    {
888       default :
889          return -1;
890    }
891 }
892 private final int jjStartNfa_2(int pos, long active0, long active1)
893 {
894    return jjMoveNfa_2(jjStopStringLiteralDfa_2(pos, active0, active1), pos + 1);
895 }
896 private int jjMoveStringLiteralDfa0_2()
897 {
898    switch(curChar)
899    {
900       case 96:
901          return jjStopAtPos(0, 76);
902       default :
903          return jjMoveNfa_2(0, 0);
904    }
905 }
906 static final long[] jjbitVec7 = {
907    0xfffffffffffffffeL, 0xffffffffffffffffL, 0xffffffffffffffffL, 0xffffffffffffffffL
908 };
909 static final long[] jjbitVec8 = {
910    0x0L, 0x0L, 0xffffffffffffffffL, 0xffffffffffffffffL
911 };
912 private int jjMoveNfa_2(int startState, int curPos)
913 {
914    int startsAt = 0;
915    jjnewStateCnt = 6;
916    int i = 1;
917    jjstateSet[0] = startState;
918    int kind = 0x7fffffff;
919    for (;;)
920    {
921       if (++jjround == 0x7fffffff)
922          ReInitRounds();
923       if (curChar < 64)
924       {
925          long l = 1L << curChar;
926          do
927          {
928             switch(jjstateSet[--i])
929             {
930                case 0:
931                   if (kind > 75)
932                      kind = 75;
933                   break;
934                case 1:
935                   if ((0x8400000000L & l) != 0L && kind > 74)
936                      kind = 74;
937                   break;
938                case 2:
939                   if ((0xf000000000000L & l) != 0L)
940                      jjstateSet[jjnewStateCnt++] = 3;
941                   break;
942                case 3:
943                   if ((0xff000000000000L & l) == 0L)
944                      break;
945                   if (kind > 74)
946                      kind = 74;
947                   jjstateSet[jjnewStateCnt++] = 4;
948                   break;
949                case 4:
950                   if ((0xff000000000000L & l) != 0L && kind > 74)
951                      kind = 74;
952                   break;
953                default : break;
954             }
955          } while(i != startsAt);
956       }
957       else if (curChar < 128)
958       {
959          long l = 1L << (curChar & 077);
960          do
961          {
962             switch(jjstateSet[--i])
963             {
964                case 0:
965                   if ((0xfffffffeefffffffL & l) != 0L)
966                   {
967                      if (kind > 75)
968                         kind = 75;
969                   }
970                   else if (curChar == 92)
971                      jjAddStates(19, 21);
972                   break;
973                case 1:
974                   if ((0x14404510000000L & l) != 0L && kind > 74)
975                      kind = 74;
976                   break;
977                case 5:
978                   if ((0xfffffffeefffffffL & l) != 0L && kind > 75)
979                      kind = 75;
980                   break;
981                default : break;
982             }
983          } while(i != startsAt);
984       }
985       else
986       {
987          int hiByte = (int)(curChar >> 8);
988          int i1 = hiByte >> 6;
989          long l1 = 1L << (hiByte & 077);
990          int i2 = (curChar & 0xff) >> 6;
991          long l2 = 1L << (curChar & 077);
992          do
993          {
994             switch(jjstateSet[--i])
995             {
996                case 0:
997                   if (jjCanMove_1(hiByte, i1, i2, l1, l2) && kind > 75)
998                      kind = 75;
999                   break;
1000                default : break;
1001             }
1002          } while(i != startsAt);
1003       }
1004       if (kind != 0x7fffffff)
1005       {
1006          jjmatchedKind = kind;
1007          jjmatchedPos = curPos;
1008          kind = 0x7fffffff;
1009       }
1010       ++curPos;
1011       if ((i = jjnewStateCnt) == (startsAt = 6 - (jjnewStateCnt = startsAt)))
1012          return curPos;
1013       try { curChar = input_stream.readChar(); }
1014       catch(java.io.IOException e) { return curPos; }
1015    }
1016 }
1017 private final int jjStopStringLiteralDfa_1(int pos, long active0, long active1)
1018 {
1019    switch (pos)
1020    {
1021       default :
1022          return -1;
1023    }
1024 }
1025 private final int jjStartNfa_1(int pos, long active0, long active1)
1026 {
1027    return jjMoveNfa_1(jjStopStringLiteralDfa_1(pos, active0, active1), pos + 1);
1028 }
1029 private int jjMoveStringLiteralDfa0_1()
1030 {
1031    switch(curChar)
1032    {
1033       case 39:
1034          return jjStopAtPos(0, 73);
1035       default :
1036          return jjMoveNfa_1(0, 0);
1037    }
1038 }
1039 private int jjMoveNfa_1(int startState, int curPos)
1040 {
1041    int startsAt = 0;
1042    jjnewStateCnt = 6;
1043    int i = 1;
1044    jjstateSet[0] = startState;
1045    int kind = 0x7fffffff;
1046    for (;;)
1047    {
1048       if (++jjround == 0x7fffffff)
1049          ReInitRounds();
1050       if (curChar < 64)
1051       {
1052          long l = 1L << curChar;
1053          do
1054          {
1055             switch(jjstateSet[--i])
1056             {
1057                case 0:
1058                   if ((0xffffff7fffffffffL & l) != 0L && kind > 72)
1059                      kind = 72;
1060                   break;
1061                case 1:
1062                   if ((0x8400000000L & l) != 0L && kind > 71)
1063                      kind = 71;
1064                   break;
1065                case 2:
1066                   if ((0xf000000000000L & l) != 0L)
1067                      jjstateSet[jjnewStateCnt++] = 3;
1068                   break;
1069                case 3:
1070                   if ((0xff000000000000L & l) == 0L)
1071                      break;
1072                   if (kind > 71)
1073                      kind = 71;
1074                   jjstateSet[jjnewStateCnt++] = 4;
1075                   break;
1076                case 4:
1077                   if ((0xff000000000000L & l) != 0L && kind > 71)
1078                      kind = 71;
1079                   break;
1080                default : break;
1081             }
1082          } while(i != startsAt);
1083       }
1084       else if (curChar < 128)
1085       {
1086          long l = 1L << (curChar & 077);
1087          do
1088          {
1089             switch(jjstateSet[--i])
1090             {
1091                case 0:
1092                   if ((0xffffffffefffffffL & l) != 0L)
1093                   {
1094                      if (kind > 72)
1095                         kind = 72;
1096                   }
1097                   else if (curChar == 92)
1098                      jjAddStates(19, 21);
1099                   break;
1100                case 1:
1101                   if ((0x14404510000000L & l) != 0L && kind > 71)
1102                      kind = 71;
1103                   break;
1104                case 5:
1105                   if ((0xffffffffefffffffL & l) != 0L && kind > 72)
1106                      kind = 72;
1107                   break;
1108                default : break;
1109             }
1110          } while(i != startsAt);
1111       }
1112       else
1113       {
1114          int hiByte = (int)(curChar >> 8);
1115          int i1 = hiByte >> 6;
1116          long l1 = 1L << (hiByte & 077);
1117          int i2 = (curChar & 0xff) >> 6;
1118          long l2 = 1L << (curChar & 077);
1119          do
1120          {
1121             switch(jjstateSet[--i])
1122             {
1123                case 0:
1124                   if (jjCanMove_1(hiByte, i1, i2, l1, l2) && kind > 72)
1125                      kind = 72;
1126                   break;
1127                default : break;
1128             }
1129          } while(i != startsAt);
1130       }
1131       if (kind != 0x7fffffff)
1132       {
1133          jjmatchedKind = kind;
1134          jjmatchedPos = curPos;
1135          kind = 0x7fffffff;
1136       }
1137       ++curPos;
1138       if ((i = jjnewStateCnt) == (startsAt = 6 - (jjnewStateCnt = startsAt)))
1139          return curPos;
1140       try { curChar = input_stream.readChar(); }
1141       catch(java.io.IOException e) { return curPos; }
1142    }
1143 }
1144 private final int jjStopStringLiteralDfa_3(int pos, long active0, long active1)
1145 {
1146    switch (pos)
1147    {
1148       default :
1149          return -1;
1150    }
1151 }
1152 private final int jjStartNfa_3(int pos, long active0, long active1)
1153 {
1154    return jjMoveNfa_3(jjStopStringLiteralDfa_3(pos, active0, active1), pos + 1);
1155 }
1156 private int jjMoveStringLiteralDfa0_3()
1157 {
1158    switch(curChar)
1159    {
1160       case 34:
1161          return jjStopAtPos(0, 79);
1162       default :
1163          return jjMoveNfa_3(0, 0);
1164    }
1165 }
1166 private int jjMoveNfa_3(int startState, int curPos)
1167 {
1168    int startsAt = 0;
1169    jjnewStateCnt = 6;
1170    int i = 1;
1171    jjstateSet[0] = startState;
1172    int kind = 0x7fffffff;
1173    for (;;)
1174    {
1175       if (++jjround == 0x7fffffff)
1176          ReInitRounds();
1177       if (curChar < 64)
1178       {
1179          long l = 1L << curChar;
1180          do
1181          {
1182             switch(jjstateSet[--i])
1183             {
1184                case 0:
1185                   if ((0xfffffffbffffffffL & l) != 0L && kind > 78)
1186                      kind = 78;
1187                   break;
1188                case 1:
1189                   if ((0x8400000000L & l) != 0L && kind > 77)
1190                      kind = 77;
1191                   break;
1192                case 2:
1193                   if ((0xf000000000000L & l) != 0L)
1194                      jjstateSet[jjnewStateCnt++] = 3;
1195                   break;
1196                case 3:
1197                   if ((0xff000000000000L & l) == 0L)
1198                      break;
1199                   if (kind > 77)
1200                      kind = 77;
1201                   jjstateSet[jjnewStateCnt++] = 4;
1202                   break;
1203                case 4:
1204                   if ((0xff000000000000L & l) != 0L && kind > 77)
1205                      kind = 77;
1206                   break;
1207                default : break;
1208             }
1209          } while(i != startsAt);
1210       }
1211       else if (curChar < 128)
1212       {
1213          long l = 1L << (curChar & 077);
1214          do
1215          {
1216             switch(jjstateSet[--i])
1217             {
1218                case 0:
1219                   if ((0xffffffffefffffffL & l) != 0L)
1220                   {
1221                      if (kind > 78)
1222                         kind = 78;
1223                   }
1224                   else if (curChar == 92)
1225                      jjAddStates(19, 21);
1226                   break;
1227                case 1:
1228                   if ((0x14404510000000L & l) != 0L && kind > 77)
1229                      kind = 77;
1230                   break;
1231                case 5:
1232                   if ((0xffffffffefffffffL & l) != 0L && kind > 78)
1233                      kind = 78;
1234                   break;
1235                default : break;
1236             }
1237          } while(i != startsAt);
1238       }
1239       else
1240       {
1241          int hiByte = (int)(curChar >> 8);
1242          int i1 = hiByte >> 6;
1243          long l1 = 1L << (hiByte & 077);
1244          int i2 = (curChar & 0xff) >> 6;
1245          long l2 = 1L << (curChar & 077);
1246          do
1247          {
1248             switch(jjstateSet[--i])
1249             {
1250                case 0:
1251                   if (jjCanMove_1(hiByte, i1, i2, l1, l2) && kind > 78)
1252                      kind = 78;
1253                   break;
1254                default : break;
1255             }
1256          } while(i != startsAt);
1257       }
1258       if (kind != 0x7fffffff)
1259       {
1260          jjmatchedKind = kind;
1261          jjmatchedPos = curPos;
1262          kind = 0x7fffffff;
1263       }
1264       ++curPos;
1265       if ((i = jjnewStateCnt) == (startsAt = 6 - (jjnewStateCnt = startsAt)))
1266          return curPos;
1267       try { curChar = input_stream.readChar(); }
1268       catch(java.io.IOException e) { return curPos; }
1269    }
1270 }
1271 static final int[] jjnextStates = {
1272    15, 16, 18, 19, 22, 13, 24, 25, 7, 9, 10, 13, 17, 10, 13, 11, 
1273    12, 20, 21, 1, 2, 3, 
1274 };
1275 private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, long l2)
1276 {
1277    switch(hiByte)
1278    {
1279       case 0:
1280          return ((jjbitVec2[i2] & l2) != 0L);
1281       case 48:
1282          return ((jjbitVec3[i2] & l2) != 0L);
1283       case 49:
1284          return ((jjbitVec4[i2] & l2) != 0L);
1285       case 51:
1286          return ((jjbitVec5[i2] & l2) != 0L);
1287       case 61:
1288          return ((jjbitVec6[i2] & l2) != 0L);
1289       default :
1290          if ((jjbitVec0[i1] & l1) != 0L)
1291             return true;
1292          return false;
1293    }
1294 }
1295 private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, long l2)
1296 {
1297    switch(hiByte)
1298    {
1299       case 0:
1300          return ((jjbitVec8[i2] & l2) != 0L);
1301       default :
1302          if ((jjbitVec7[i1] & l1) != 0L)
1303             return true;
1304          return false;
1305    }
1306 }
1307 
1308 /** Token literal values. */
1309 public static final String[] jjstrLiteralImages = {
1310 "", "\54", "\75", "\77", "\72", "\174\174", "\157\162", "\46\46", 
1311 "\141\156\144", "\174", "\142\157\162", "\136", "\170\157\162", "\46", "\142\141\156\144", 
1312 "\75\75", "\145\161", "\41\75", "\156\145\161", "\74", "\154\164", "\76", "\147\164", 
1313 "\74\75", "\154\164\145", "\76\75", "\147\164\145", "\151\156", "\156\157\164", 
1314 "\74\74", "\163\150\154", "\76\76", "\163\150\162", "\76\76\76", "\165\163\150\162", 
1315 "\53", "\55", "\52", "\57", "\45", "\176", "\41", 
1316 "\151\156\163\164\141\156\143\145\157\146", "\56", "\50", "\51", "\164\162\165\145", "\146\141\154\163\145", 
1317 "\156\165\154\154", "\43\164\150\151\163", "\43\162\157\157\164", "\43", "\133", "\135", "\173", 
1318 "\175", "\100", "\156\145\167", "\44", null, null, null, null, null, null, null, null, 
1319 null, null, null, null, null, null, null, null, null, null, null, null, null, null, 
1320 null, null, null, null, null, };
1321 
1322 /** Lexer state names. */
1323 public static final String[] lexStateNames = {
1324    "DEFAULT",
1325    "WithinCharLiteral",
1326    "WithinBackCharLiteral",
1327    "WithinStringLiteral",
1328 };
1329 
1330 /** Lex State array. */
1331 public static final int[] jjnewLexState = {
1332    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1333    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1334    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2, 1, 3, -1, -1, 0, -1, 
1335    -1, 0, -1, -1, 0, -1, -1, -1, -1, -1, -1, 
1336 };
1337 static final long[] jjtoToken = {
1338    0x7ffffffffffffffL, 0x39209L, 
1339 };
1340 static final long[] jjtoSkip = {
1341    0xf800000000000000L, 0x0L, 
1342 };
1343 static final long[] jjtoMore = {
1344    0x0L, 0x6df0L, 
1345 };
1346 protected JavaCharStream input_stream;
1347 private final int[] jjrounds = new int[27];
1348 private final int[] jjstateSet = new int[54];
1349 private final StringBuilder jjimage = new StringBuilder();
1350 private StringBuilder image = jjimage;
1351 private int jjimageLen;
1352 private int lengthOfMatch;
1353 protected char curChar;
1354 /** Constructor. */
1355 public OgnlParserTokenManager(JavaCharStream stream){
1356    if (JavaCharStream.staticFlag)
1357       throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
1358    input_stream = stream;
1359 }
1360 
1361 /** Constructor. */
1362 public OgnlParserTokenManager(JavaCharStream stream, int lexState){
1363    this(stream);
1364    SwitchTo(lexState);
1365 }
1366 
1367 /** Reinitialise parser. */
1368 public void ReInit(JavaCharStream stream)
1369 {
1370    jjmatchedPos = jjnewStateCnt = 0;
1371    curLexState = defaultLexState;
1372    input_stream = stream;
1373    ReInitRounds();
1374 }
1375 private void ReInitRounds()
1376 {
1377    int i;
1378    jjround = 0x80000001;
1379    for (i = 27; i-- > 0;)
1380       jjrounds[i] = 0x80000000;
1381 }
1382 
1383 /** Reinitialise parser. */
1384 public void ReInit(JavaCharStream stream, int lexState)
1385 {
1386    ReInit(stream);
1387    SwitchTo(lexState);
1388 }
1389 
1390 /** Switch to specified lex state. */
1391 public void SwitchTo(int lexState)
1392 {
1393    if (lexState >= 4 || lexState < 0)
1394       throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
1395    else
1396       curLexState = lexState;
1397 }
1398 
1399 protected Token jjFillToken()
1400 {
1401    final Token t;
1402    final String curTokenImage;
1403    final int beginLine;
1404    final int endLine;
1405    final int beginColumn;
1406    final int endColumn;
1407    String im = jjstrLiteralImages[jjmatchedKind];
1408    curTokenImage = (im == null) ? input_stream.GetImage() : im;
1409    beginLine = input_stream.getBeginLine();
1410    beginColumn = input_stream.getBeginColumn();
1411    endLine = input_stream.getEndLine();
1412    endColumn = input_stream.getEndColumn();
1413    t = Token.newToken(jjmatchedKind, curTokenImage);
1414 
1415    t.beginLine = beginLine;
1416    t.endLine = endLine;
1417    t.beginColumn = beginColumn;
1418    t.endColumn = endColumn;
1419 
1420    return t;
1421 }
1422 
1423 int curLexState = 0;
1424 int defaultLexState = 0;
1425 int jjnewStateCnt;
1426 int jjround;
1427 int jjmatchedPos;
1428 int jjmatchedKind;
1429 
1430 /** Get the next Token. */
1431 public Token getNextToken() 
1432 {
1433   Token matchedToken;
1434   int curPos = 0;
1435 
1436   EOFLoop :
1437   for (;;)
1438   {
1439    try
1440    {
1441       curChar = input_stream.BeginToken();
1442    }
1443    catch(java.io.IOException e)
1444    {
1445       jjmatchedKind = 0;
1446       matchedToken = jjFillToken();
1447       return matchedToken;
1448    }
1449    image = jjimage;
1450    image.setLength(0);
1451    jjimageLen = 0;
1452 
1453    for (;;)
1454    {
1455      switch(curLexState)
1456      {
1457        case 0:
1458          try { input_stream.backup(0);
1459             while (curChar <= 32 && (0x100003600L & (1L << curChar)) != 0L)
1460                curChar = input_stream.BeginToken();
1461          }
1462          catch (java.io.IOException e1) { continue EOFLoop; }
1463          jjmatchedKind = 0x7fffffff;
1464          jjmatchedPos = 0;
1465          curPos = jjMoveStringLiteralDfa0_0();
1466          break;
1467        case 1:
1468          jjmatchedKind = 0x7fffffff;
1469          jjmatchedPos = 0;
1470          curPos = jjMoveStringLiteralDfa0_1();
1471          break;
1472        case 2:
1473          jjmatchedKind = 0x7fffffff;
1474          jjmatchedPos = 0;
1475          curPos = jjMoveStringLiteralDfa0_2();
1476          break;
1477        case 3:
1478          jjmatchedKind = 0x7fffffff;
1479          jjmatchedPos = 0;
1480          curPos = jjMoveStringLiteralDfa0_3();
1481          break;
1482      }
1483      if (jjmatchedKind != 0x7fffffff)
1484      {
1485         if (jjmatchedPos + 1 < curPos)
1486            input_stream.backup(curPos - jjmatchedPos - 1);
1487         if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
1488         {
1489            matchedToken = jjFillToken();
1490            TokenLexicalActions(matchedToken);
1491        if (jjnewLexState[jjmatchedKind] != -1)
1492          curLexState = jjnewLexState[jjmatchedKind];
1493            return matchedToken;
1494         }
1495         else if ((jjtoSkip[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L)
1496         {
1497          if (jjnewLexState[jjmatchedKind] != -1)
1498            curLexState = jjnewLexState[jjmatchedKind];
1499            continue EOFLoop;
1500         }
1501         MoreLexicalActions();
1502       if (jjnewLexState[jjmatchedKind] != -1)
1503         curLexState = jjnewLexState[jjmatchedKind];
1504         curPos = 0;
1505         jjmatchedKind = 0x7fffffff;
1506         try {
1507            curChar = input_stream.readChar();
1508            continue;
1509         }
1510         catch (java.io.IOException e1) { }
1511      }
1512      int error_line = input_stream.getEndLine();
1513      int error_column = input_stream.getEndColumn();
1514      String error_after = null;
1515      boolean EOFSeen = false;
1516      try { input_stream.readChar(); input_stream.backup(1); }
1517      catch (java.io.IOException e1) {
1518         EOFSeen = true;
1519         error_after = curPos <= 1 ? "" : input_stream.GetImage();
1520         if (curChar == '\n' || curChar == '\r') {
1521            error_line++;
1522            error_column = 0;
1523         }
1524         else
1525            error_column++;
1526      }
1527      if (!EOFSeen) {
1528         input_stream.backup(1);
1529         error_after = curPos <= 1 ? "" : input_stream.GetImage();
1530      }
1531      throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
1532    }
1533   }
1534 }
1535 
1536 void MoreLexicalActions()
1537 {
1538    jjimageLen += (lengthOfMatch = jjmatchedPos + 1);
1539    switch(jjmatchedKind)
1540    {
1541       case 69 :
1542          image.append(input_stream.GetSuffix(jjimageLen));
1543          jjimageLen = 0;
1544               stringBuilder = new StringBuilder();
1545          break;
1546       case 70 :
1547          image.append(input_stream.GetSuffix(jjimageLen));
1548          jjimageLen = 0;
1549               stringBuilder = new StringBuilder();
1550          break;
1551       case 71 :
1552          image.append(input_stream.GetSuffix(jjimageLen));
1553          jjimageLen = 0;
1554           charValue = escapeChar(); stringBuilder.append(charValue);
1555          break;
1556       case 72 :
1557          image.append(input_stream.GetSuffix(jjimageLen));
1558          jjimageLen = 0;
1559           charValue = image.charAt( image.length()-1 ); stringBuilder.append(charValue);
1560          break;
1561       case 74 :
1562          image.append(input_stream.GetSuffix(jjimageLen));
1563          jjimageLen = 0;
1564           charValue = escapeChar();
1565          break;
1566       case 75 :
1567          image.append(input_stream.GetSuffix(jjimageLen));
1568          jjimageLen = 0;
1569           charValue = image.charAt( image.length()-1 );
1570          break;
1571       case 77 :
1572          image.append(input_stream.GetSuffix(jjimageLen));
1573          jjimageLen = 0;
1574           stringBuilder.append( escapeChar() );
1575          break;
1576       case 78 :
1577          image.append(input_stream.GetSuffix(jjimageLen));
1578          jjimageLen = 0;
1579           stringBuilder.append( image.charAt(image.length()-1) );
1580          break;
1581       default :
1582          break;
1583    }
1584 }
1585 void TokenLexicalActions(Token matchedToken)
1586 {
1587    switch(jjmatchedKind)
1588    {
1589       case 67 :
1590         image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
1591             switch (image.charAt(1)) {
1592               case '^': literalValue = DynamicSubscript.first; break;
1593               case '|': literalValue = DynamicSubscript.mid;   break;
1594               case '$': literalValue = DynamicSubscript.last;  break;
1595               case '*': literalValue = DynamicSubscript.all;   break;
1596           }
1597          break;
1598       case 73 :
1599         image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
1600             if (stringBuilder.length() == 1) {
1601                 literalValue = new Character( charValue );
1602             } else {
1603                 literalValue = stringBuilder.toString();
1604             }
1605          break;
1606       case 76 :
1607         image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
1608           literalValue = new Character( charValue );
1609          break;
1610       case 79 :
1611         image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
1612           literalValue = stringBuilder.toString();
1613          break;
1614       case 80 :
1615         image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
1616           literalValue =
1617         makeInt();
1618          break;
1619       case 81 :
1620         image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)));
1621           literalValue = makeFloat();
1622          break;
1623       default :
1624          break;
1625    }
1626 }
1627 private void jjCheckNAdd(int state)
1628 {
1629    if (jjrounds[state] != jjround)
1630    {
1631       jjstateSet[jjnewStateCnt++] = state;
1632       jjrounds[state] = jjround;
1633    }
1634 }
1635 private void jjAddStates(int start, int end)
1636 {
1637    do {
1638       jjstateSet[jjnewStateCnt++] = jjnextStates[start];
1639    } while (start++ != end);
1640 }
1641 private void jjCheckNAddTwoStates(int state1, int state2)
1642 {
1643    jjCheckNAdd(state1);
1644    jjCheckNAdd(state2);
1645 }
1646 
1647 private void jjCheckNAddStates(int start, int end)
1648 {
1649    do {
1650       jjCheckNAdd(jjnextStates[start]);
1651    } while (start++ != end);
1652 }
1653 
1654 }