1
2 package org.apache.commons.ognl;
3 import java.math.*;
4
5
6 public class OgnlParserTokenManager implements OgnlParserConstants
7 {
8
9 Object literalValue;
10
11 private char charValue;
12
13 private char charLiteralStartQuote;
14
15 private StringBuilder stringBuilder;
16
17
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
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);
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
84 public java.io.PrintStream debugStream = System.out;
85
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
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
1323 public static final String[] lexStateNames = {
1324 "DEFAULT",
1325 "WithinCharLiteral",
1326 "WithinBackCharLiteral",
1327 "WithinStringLiteral",
1328 };
1329
1330
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
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
1362 public OgnlParserTokenManager(JavaCharStream stream, int lexState){
1363 this(stream);
1364 SwitchTo(lexState);
1365 }
1366
1367
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
1384 public void ReInit(JavaCharStream stream, int lexState)
1385 {
1386 ReInit(stream);
1387 SwitchTo(lexState);
1388 }
1389
1390
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
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 }