1
2 package org.codehaus.activemq.selector;
3
4 import org.codehaus.activemq.filter.ArithmeticExpression;
5 import org.codehaus.activemq.filter.BooleanExpression;
6 import org.codehaus.activemq.filter.ComparisonExpression;
7 import org.codehaus.activemq.filter.ConstantExpression;
8 import org.codehaus.activemq.filter.Expression;
9 import org.codehaus.activemq.filter.ExpressionFilter;
10 import org.codehaus.activemq.filter.Filter;
11 import org.codehaus.activemq.filter.LogicExpression;
12 import org.codehaus.activemq.filter.PropertyExpression;
13 import org.codehaus.activemq.filter.UnaryExpression;
14
15 import javax.jms.InvalidSelectorException;
16 import java.io.StringReader;
17 import java.util.ArrayList;
18
19 /***
20 * JMS Selector Parser generated by JavaCC
21 * <p/>
22 * Do not edit this .java file directly - it is autogenerated from SelectorParser.jj
23 */
24 public class SelectorParser implements SelectorParserConstants {
25
26 public SelectorParser() {
27 this(new StringReader(""));
28 }
29
30 public Filter parse(String sql) throws InvalidSelectorException {
31 this.ReInit(new StringReader(sql));
32
33 try {
34 return this.JmsSelector();
35 }
36 catch (TokenMgrError e) {
37 throw new InvalidSelectorException(e.getMessage());
38 }
39 catch (ParseException e) {
40 throw new InvalidSelectorException(e.getMessage());
41 }
42 }
43
44 private BooleanExpression asBooleanExpression(Expression value) throws ParseException {
45 if (value instanceof BooleanExpression) {
46 return (BooleanExpression) value;
47 }
48 throw new ParseException("Expression will not result in a boolean value: " + value);
49 }
50
51
52
53
54 final public Filter JmsSelector() throws ParseException {
55 Expression left = null;
56 left = orExpression();
57 if (left instanceof BooleanExpression) {
58 if (true) {
59 return new ExpressionFilter(left);
60 }
61 }
62 else {
63 if (true) {
64 throw new ParseException("Selector does not result in a boolean value: " + left);
65 }
66 }
67 throw new Error("Missing return statement in function");
68 }
69
70 final public Expression orExpression() throws ParseException {
71 Expression left;
72 Expression right;
73 left = andExpression();
74 label_1:
75 while (true) {
76 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
77 case OR:
78 ;
79 break;
80 default:
81 break label_1;
82 }
83 jj_consume_token(OR);
84 right = andExpression();
85 left = LogicExpression.createOR(asBooleanExpression(left), asBooleanExpression(right));
86 }
87 {
88 if (true) {
89 return left;
90 }
91 }
92 throw new Error("Missing return statement in function");
93 }
94
95 final public Expression andExpression() throws ParseException {
96 Expression left;
97 Expression right;
98 left = equalityExpression();
99 label_2:
100 while (true) {
101 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
102 case AND:
103 ;
104 break;
105 default:
106 break label_2;
107 }
108 jj_consume_token(AND);
109 right = equalityExpression();
110 left = LogicExpression.createAND(asBooleanExpression(left), asBooleanExpression(right));
111 }
112 {
113 if (true) {
114 return left;
115 }
116 }
117 throw new Error("Missing return statement in function");
118 }
119
120 final public Expression equalityExpression() throws ParseException {
121 Expression left;
122 Expression right;
123 left = comparisonExpression();
124 label_3:
125 while (true) {
126 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
127 case IS:
128 case 24:
129 case 25:
130 ;
131 break;
132 default:
133 break label_3;
134 }
135 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
136 case 24:
137 jj_consume_token(24);
138 right = comparisonExpression();
139 left = ComparisonExpression.createEqual(left, right);
140 break;
141 case 25:
142 jj_consume_token(25);
143 right = comparisonExpression();
144 left = ComparisonExpression.createNotEqual(left, right);
145 break;
146 default:
147 if (jj_2_1(2)) {
148 jj_consume_token(IS);
149 jj_consume_token(NULL);
150 left = ComparisonExpression.createIsNull(left);
151 }
152 else {
153 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
154 case IS:
155 jj_consume_token(IS);
156 jj_consume_token(NOT);
157 jj_consume_token(NULL);
158 left = ComparisonExpression.createIsNotNull(left);
159 break;
160 default:
161 jj_consume_token(-1);
162 throw new ParseException();
163 }
164 }
165 }
166 }
167 {
168 if (true) {
169 return left;
170 }
171 }
172 throw new Error("Missing return statement in function");
173 }
174
175 final public Expression comparisonExpression() throws ParseException {
176 Expression left;
177 Expression right;
178 Expression low;
179 Expression high;
180 String t, u;
181 boolean not;
182 ArrayList list;
183 left = addExpression();
184 label_4:
185 while (true) {
186 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
187 case NOT:
188 case BETWEEN:
189 case LIKE:
190 case IN:
191 case 26:
192 case 27:
193 case 28:
194 case 29:
195 ;
196 break;
197 default:
198 break label_4;
199 }
200 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
201 case 26:
202 jj_consume_token(26);
203 right = addExpression();
204 left = ComparisonExpression.createGreaterThan(left, right);
205 break;
206 case 27:
207 jj_consume_token(27);
208 right = addExpression();
209 left = ComparisonExpression.createGreaterThanEqual(left, right);
210 break;
211 case 28:
212 jj_consume_token(28);
213 right = addExpression();
214 left = ComparisonExpression.createLessThan(left, right);
215 break;
216 case 29:
217 jj_consume_token(29);
218 right = addExpression();
219 left = ComparisonExpression.createLessThanEqual(left, right);
220 break;
221 case LIKE:
222 u = null;
223 jj_consume_token(LIKE);
224 t = stringLitteral();
225 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
226 case ESCAPE:
227 jj_consume_token(ESCAPE);
228 u = stringLitteral();
229 break;
230 default:
231 ;
232 }
233 left = ComparisonExpression.createLike(left, t, u);
234 break;
235 default:
236 if (jj_2_2(2)) {
237 u = null;
238 jj_consume_token(NOT);
239 jj_consume_token(LIKE);
240 t = stringLitteral();
241 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
242 case ESCAPE:
243 jj_consume_token(ESCAPE);
244 u = stringLitteral();
245 break;
246 default:
247 ;
248 }
249 left = ComparisonExpression.createNotLike(left, t, u);
250 }
251 else {
252 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
253 case BETWEEN:
254 jj_consume_token(BETWEEN);
255 low = addExpression();
256 jj_consume_token(AND);
257 high = addExpression();
258 left = ComparisonExpression.createBetween(left, low, high);
259 break;
260 default:
261 if (jj_2_3(2)) {
262 jj_consume_token(NOT);
263 jj_consume_token(BETWEEN);
264 low = addExpression();
265 jj_consume_token(AND);
266 high = addExpression();
267 left = ComparisonExpression.createNotBetween(left, low, high);
268 }
269 else {
270 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
271 case IN:
272 jj_consume_token(IN);
273 jj_consume_token(30);
274 right = literal();
275 list = new ArrayList();
276 list.add(right);
277 label_5:
278 while (true) {
279 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
280 case 31:
281 ;
282 break;
283 default:
284 break label_5;
285 }
286 jj_consume_token(31);
287 right = literal();
288 list.add(right);
289 }
290 jj_consume_token(32);
291 left = ComparisonExpression.createInFilter(left, list);
292 break;
293 default:
294 if (jj_2_4(2)) {
295 jj_consume_token(NOT);
296 jj_consume_token(IN);
297 jj_consume_token(30);
298 right = literal();
299 list = new ArrayList();
300 list.add(right);
301 label_6:
302 while (true) {
303 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
304 case 31:
305 ;
306 break;
307 default:
308 break label_6;
309 }
310 jj_consume_token(31);
311 right = literal();
312 list.add(right);
313 }
314 jj_consume_token(32);
315 left = ComparisonExpression.createNotInFilter(left, list);
316 }
317 else {
318 jj_consume_token(-1);
319 throw new ParseException();
320 }
321 }
322 }
323 }
324 }
325 }
326 }
327 {
328 if (true) {
329 return left;
330 }
331 }
332 throw new Error("Missing return statement in function");
333 }
334
335 final public Expression addExpression() throws ParseException {
336 Expression left;
337 Expression right;
338 left = multExpr();
339 label_7:
340 while (true) {
341 if (jj_2_5(2147483647)) {
342 ;
343 }
344 else {
345 break label_7;
346 }
347 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
348 case 33:
349 jj_consume_token(33);
350 right = multExpr();
351 left = ArithmeticExpression.createPlus(left, right);
352 break;
353 case 34:
354 jj_consume_token(34);
355 right = multExpr();
356 left = ArithmeticExpression.createMinus(left, right);
357 break;
358 default:
359 jj_consume_token(-1);
360 throw new ParseException();
361 }
362 }
363 {
364 if (true) {
365 return left;
366 }
367 }
368 throw new Error("Missing return statement in function");
369 }
370
371 final public Expression multExpr() throws ParseException {
372 Expression left;
373 Expression right;
374 left = unaryExpr();
375 label_8:
376 while (true) {
377 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
378 case 35:
379 case 36:
380 case 37:
381 ;
382 break;
383 default:
384 break label_8;
385 }
386 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
387 case 35:
388 jj_consume_token(35);
389 right = unaryExpr();
390 left = ArithmeticExpression.createMultiply(left, right);
391 break;
392 case 36:
393 jj_consume_token(36);
394 right = unaryExpr();
395 left = ArithmeticExpression.createDivide(left, right);
396 break;
397 case 37:
398 jj_consume_token(37);
399 right = unaryExpr();
400 left = ArithmeticExpression.createMod(left, right);
401 break;
402 default:
403 jj_consume_token(-1);
404 throw new ParseException();
405 }
406 }
407 {
408 if (true) {
409 return left;
410 }
411 }
412 throw new Error("Missing return statement in function");
413 }
414
415 final public Expression unaryExpr() throws ParseException {
416 Expression left = null;
417 if (jj_2_6(2147483647)) {
418 jj_consume_token(33);
419 left = unaryExpr();
420 }
421 else {
422 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
423 case 34:
424 jj_consume_token(34);
425 left = unaryExpr();
426 left = UnaryExpression.createNegate(left);
427 break;
428 case NOT:
429 jj_consume_token(NOT);
430 left = unaryExpr();
431 left = UnaryExpression.createNOT(asBooleanExpression(left));
432 break;
433 case TRUE:
434 case FALSE:
435 case NULL:
436 case INTEGER_LITERAL:
437 case FLOATING_POINT_LITERAL:
438 case STRING_LITERAL:
439 case ID:
440 case 30:
441 left = primaryExpr();
442 break;
443 default:
444 jj_consume_token(-1);
445 throw new ParseException();
446 }
447 }
448 {
449 if (true) {
450 return left;
451 }
452 }
453 throw new Error("Missing return statement in function");
454 }
455
456 final public Expression primaryExpr() throws ParseException {
457 Expression left = null;
458 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
459 case TRUE:
460 case FALSE:
461 case NULL:
462 case INTEGER_LITERAL:
463 case FLOATING_POINT_LITERAL:
464 case STRING_LITERAL:
465 left = literal();
466 break;
467 case ID:
468 left = variable();
469 break;
470 case 30:
471 jj_consume_token(30);
472 left = orExpression();
473 jj_consume_token(32);
474 break;
475 default:
476 jj_consume_token(-1);
477 throw new ParseException();
478 }
479 {
480 if (true) {
481 return left;
482 }
483 }
484 throw new Error("Missing return statement in function");
485 }
486
487 final public ConstantExpression literal() throws ParseException {
488 Token t;
489 String s;
490 ConstantExpression left = null;
491 switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
492 case STRING_LITERAL:
493 s = stringLitteral();
494 left = new ConstantExpression(s);
495 break;
496 case INTEGER_LITERAL:
497 t = jj_consume_token(INTEGER_LITERAL);
498 left = ConstantExpression.createInteger(t.image);
499 break;
500 case FLOATING_POINT_LITERAL:
501 t = jj_consume_token(FLOATING_POINT_LITERAL);
502 left = ConstantExpression.createFloat(t.image);
503 break;
504 case TRUE:
505 jj_consume_token(TRUE);
506 left = ConstantExpression.TRUE;
507 break;
508 case FALSE:
509 jj_consume_token(FALSE);
510 left = ConstantExpression.FALSE;
511 break;
512 case NULL:
513 jj_consume_token(NULL);
514 left = ConstantExpression.NULL;
515 break;
516 default:
517 jj_consume_token(-1);
518 throw new ParseException();
519 }
520 {
521 if (true) {
522 return left;
523 }
524 }
525 throw new Error("Missing return statement in function");
526 }
527
528 final public String stringLitteral() throws ParseException {
529 Token t;
530 StringBuffer rc = new StringBuffer();
531 boolean first = true;
532 t = jj_consume_token(STRING_LITERAL);
533
534 String image = t.image;
535 for (int i = 1; i < image.length() - 1; i++) {
536 char c = image.charAt(i);
537 if (c == '\'') {
538 i++;
539 }
540 rc.append(c);
541 }
542 {
543 if (true) {
544 return rc.toString();
545 }
546 }
547 throw new Error("Missing return statement in function");
548 }
549
550 final public PropertyExpression variable() throws ParseException {
551 Token t;
552 PropertyExpression left = null;
553 t = jj_consume_token(ID);
554 left = new PropertyExpression(t.image);
555 {
556 if (true) {
557 return left;
558 }
559 }
560 throw new Error("Missing return statement in function");
561 }
562
563 final private boolean jj_2_1(int xla) {
564 jj_la = xla;
565 jj_lastpos = jj_scanpos = token;
566 return !jj_3_1();
567 }
568
569 final private boolean jj_2_2(int xla) {
570 jj_la = xla;
571 jj_lastpos = jj_scanpos = token;
572 return !jj_3_2();
573 }
574
575 final private boolean jj_2_3(int xla) {
576 jj_la = xla;
577 jj_lastpos = jj_scanpos = token;
578 return !jj_3_3();
579 }
580
581 final private boolean jj_2_4(int xla) {
582 jj_la = xla;
583 jj_lastpos = jj_scanpos = token;
584 return !jj_3_4();
585 }
586
587 final private boolean jj_2_5(int xla) {
588 jj_la = xla;
589 jj_lastpos = jj_scanpos = token;
590 return !jj_3_5();
591 }
592
593 final private boolean jj_2_6(int xla) {
594 jj_la = xla;
595 jj_lastpos = jj_scanpos = token;
596 return !jj_3_6();
597 }
598
599 final private boolean jj_3R_54() {
600 if (jj_scan_token(33)) {
601 return true;
602 }
603 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
604 return false;
605 }
606 if (jj_3R_11()) {
607 return true;
608 }
609 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
610 return false;
611 }
612 return false;
613 }
614
615 final private boolean jj_3R_49() {
616 if (jj_scan_token(28)) {
617 return true;
618 }
619 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
620 return false;
621 }
622 if (jj_3R_41()) {
623 return true;
624 }
625 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
626 return false;
627 }
628 return false;
629 }
630
631 final private boolean jj_3R_28() {
632 if (jj_3R_36()) {
633 return true;
634 }
635 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
636 return false;
637 }
638 return false;
639 }
640
641 final private boolean jj_3R_59() {
642 if (jj_scan_token(31)) {
643 return true;
644 }
645 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
646 return false;
647 }
648 if (jj_3R_25()) {
649 return true;
650 }
651 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
652 return false;
653 }
654 return false;
655 }
656
657 final private boolean jj_3R_46() {
658 Token xsp;
659 xsp = jj_scanpos;
660 if (jj_3R_54()) {
661 jj_scanpos = xsp;
662 if (jj_3R_55()) {
663 return true;
664 }
665 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
666 return false;
667 }
668 }
669 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
670 return false;
671 }
672 return false;
673 }
674
675 final private boolean jj_3R_35() {
676 if (jj_scan_token(OR)) {
677 return true;
678 }
679 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
680 return false;
681 }
682 if (jj_3R_34()) {
683 return true;
684 }
685 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
686 return false;
687 }
688 return false;
689 }
690
691 final private boolean jj_3R_48() {
692 if (jj_scan_token(27)) {
693 return true;
694 }
695 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
696 return false;
697 }
698 if (jj_3R_41()) {
699 return true;
700 }
701 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
702 return false;
703 }
704 return false;
705 }
706
707 final private boolean jj_3R_25() {
708 Token xsp;
709 xsp = jj_scanpos;
710 if (jj_3R_28()) {
711 jj_scanpos = xsp;
712 if (jj_3R_29()) {
713 jj_scanpos = xsp;
714 if (jj_3R_30()) {
715 jj_scanpos = xsp;
716 if (jj_3R_31()) {
717 jj_scanpos = xsp;
718 if (jj_3R_32()) {
719 jj_scanpos = xsp;
720 if (jj_3R_33()) {
721 return true;
722 }
723 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
724 return false;
725 }
726 }
727 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
728 return false;
729 }
730 }
731 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
732 return false;
733 }
734 }
735 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
736 return false;
737 }
738 }
739 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
740 return false;
741 }
742 }
743 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
744 return false;
745 }
746 return false;
747 }
748
749 final private boolean jj_3R_47() {
750 if (jj_scan_token(26)) {
751 return true;
752 }
753 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
754 return false;
755 }
756 if (jj_3R_41()) {
757 return true;
758 }
759 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
760 return false;
761 }
762 return false;
763 }
764
765 final private boolean jj_3R_42() {
766 Token xsp;
767 xsp = jj_scanpos;
768 if (jj_3R_47()) {
769 jj_scanpos = xsp;
770 if (jj_3R_48()) {
771 jj_scanpos = xsp;
772 if (jj_3R_49()) {
773 jj_scanpos = xsp;
774 if (jj_3R_50()) {
775 jj_scanpos = xsp;
776 if (jj_3R_51()) {
777 jj_scanpos = xsp;
778 if (jj_3_2()) {
779 jj_scanpos = xsp;
780 if (jj_3R_52()) {
781 jj_scanpos = xsp;
782 if (jj_3_3()) {
783 jj_scanpos = xsp;
784 if (jj_3R_53()) {
785 jj_scanpos = xsp;
786 if (jj_3_4()) {
787 return true;
788 }
789 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
790 return false;
791 }
792 }
793 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
794 return false;
795 }
796 }
797 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
798 return false;
799 }
800 }
801 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
802 return false;
803 }
804 }
805 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
806 return false;
807 }
808 }
809 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
810 return false;
811 }
812 }
813 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
814 return false;
815 }
816 }
817 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
818 return false;
819 }
820 }
821 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
822 return false;
823 }
824 }
825 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
826 return false;
827 }
828 return false;
829 }
830
831 final private boolean jj_3R_41() {
832 if (jj_3R_11()) {
833 return true;
834 }
835 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
836 return false;
837 }
838 Token xsp;
839 while (true) {
840 xsp = jj_scanpos;
841 if (jj_3R_46()) {
842 jj_scanpos = xsp;
843 break;
844 }
845 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
846 return false;
847 }
848 }
849 return false;
850 }
851
852 final private boolean jj_3R_27() {
853 if (jj_3R_34()) {
854 return true;
855 }
856 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
857 return false;
858 }
859 Token xsp;
860 while (true) {
861 xsp = jj_scanpos;
862 if (jj_3R_35()) {
863 jj_scanpos = xsp;
864 break;
865 }
866 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
867 return false;
868 }
869 }
870 return false;
871 }
872
873 final private boolean jj_3R_24() {
874 if (jj_scan_token(30)) {
875 return true;
876 }
877 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
878 return false;
879 }
880 if (jj_3R_27()) {
881 return true;
882 }
883 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
884 return false;
885 }
886 if (jj_scan_token(32)) {
887 return true;
888 }
889 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
890 return false;
891 }
892 return false;
893 }
894
895 final private boolean jj_3R_23() {
896 if (jj_3R_26()) {
897 return true;
898 }
899 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
900 return false;
901 }
902 return false;
903 }
904
905 final private boolean jj_3R_22() {
906 if (jj_3R_25()) {
907 return true;
908 }
909 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
910 return false;
911 }
912 return false;
913 }
914
915 final private boolean jj_3R_58() {
916 if (jj_scan_token(31)) {
917 return true;
918 }
919 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
920 return false;
921 }
922 if (jj_3R_25()) {
923 return true;
924 }
925 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
926 return false;
927 }
928 return false;
929 }
930
931 final private boolean jj_3R_26() {
932 if (jj_scan_token(ID)) {
933 return true;
934 }
935 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
936 return false;
937 }
938 return false;
939 }
940
941 final private boolean jj_3R_39() {
942 if (jj_3R_41()) {
943 return true;
944 }
945 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
946 return false;
947 }
948 Token xsp;
949 while (true) {
950 xsp = jj_scanpos;
951 if (jj_3R_42()) {
952 jj_scanpos = xsp;
953 break;
954 }
955 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
956 return false;
957 }
958 }
959 return false;
960 }
961
962 final private boolean jj_3R_21() {
963 Token xsp;
964 xsp = jj_scanpos;
965 if (jj_3R_22()) {
966 jj_scanpos = xsp;
967 if (jj_3R_23()) {
968 jj_scanpos = xsp;
969 if (jj_3R_24()) {
970 return true;
971 }
972 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
973 return false;
974 }
975 }
976 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
977 return false;
978 }
979 }
980 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
981 return false;
982 }
983 return false;
984 }
985
986 final private boolean jj_3R_57() {
987 if (jj_scan_token(ESCAPE)) {
988 return true;
989 }
990 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
991 return false;
992 }
993 if (jj_3R_36()) {
994 return true;
995 }
996 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
997 return false;
998 }
999 return false;
1000 }
1001
1002 final private boolean jj_3_4() {
1003 if (jj_scan_token(NOT)) {
1004 return true;
1005 }
1006 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1007 return false;
1008 }
1009 if (jj_scan_token(IN)) {
1010 return true;
1011 }
1012 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1013 return false;
1014 }
1015 if (jj_scan_token(30)) {
1016 return true;
1017 }
1018 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1019 return false;
1020 }
1021 if (jj_3R_25()) {
1022 return true;
1023 }
1024 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1025 return false;
1026 }
1027 Token xsp;
1028 while (true) {
1029 xsp = jj_scanpos;
1030 if (jj_3R_59()) {
1031 jj_scanpos = xsp;
1032 break;
1033 }
1034 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1035 return false;
1036 }
1037 }
1038 if (jj_scan_token(32)) {
1039 return true;
1040 }
1041 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1042 return false;
1043 }
1044 return false;
1045 }
1046
1047 final private boolean jj_3_6() {
1048 if (jj_scan_token(33)) {
1049 return true;
1050 }
1051 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1052 return false;
1053 }
1054 if (jj_3R_12()) {
1055 return true;
1056 }
1057 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1058 return false;
1059 }
1060 return false;
1061 }
1062
1063 final private boolean jj_3R_17() {
1064 if (jj_3R_21()) {
1065 return true;
1066 }
1067 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1068 return false;
1069 }
1070 return false;
1071 }
1072
1073 final private boolean jj_3R_16() {
1074 if (jj_scan_token(NOT)) {
1075 return true;
1076 }
1077 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1078 return false;
1079 }
1080 if (jj_3R_12()) {
1081 return true;
1082 }
1083 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1084 return false;
1085 }
1086 return false;
1087 }
1088
1089 final private boolean jj_3R_53() {
1090 if (jj_scan_token(IN)) {
1091 return true;
1092 }
1093 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1094 return false;
1095 }
1096 if (jj_scan_token(30)) {
1097 return true;
1098 }
1099 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1100 return false;
1101 }
1102 if (jj_3R_25()) {
1103 return true;
1104 }
1105 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1106 return false;
1107 }
1108 Token xsp;
1109 while (true) {
1110 xsp = jj_scanpos;
1111 if (jj_3R_58()) {
1112 jj_scanpos = xsp;
1113 break;
1114 }
1115 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1116 return false;
1117 }
1118 }
1119 if (jj_scan_token(32)) {
1120 return true;
1121 }
1122 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1123 return false;
1124 }
1125 return false;
1126 }
1127
1128 final private boolean jj_3R_45() {
1129 if (jj_scan_token(IS)) {
1130 return true;
1131 }
1132 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1133 return false;
1134 }
1135 if (jj_scan_token(NOT)) {
1136 return true;
1137 }
1138 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1139 return false;
1140 }
1141 if (jj_scan_token(NULL)) {
1142 return true;
1143 }
1144 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1145 return false;
1146 }
1147 return false;
1148 }
1149
1150 final private boolean jj_3R_14() {
1151 if (jj_scan_token(33)) {
1152 return true;
1153 }
1154 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1155 return false;
1156 }
1157 if (jj_3R_12()) {
1158 return true;
1159 }
1160 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1161 return false;
1162 }
1163 return false;
1164 }
1165
1166 final private boolean jj_3R_15() {
1167 if (jj_scan_token(34)) {
1168 return true;
1169 }
1170 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1171 return false;
1172 }
1173 if (jj_3R_12()) {
1174 return true;
1175 }
1176 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1177 return false;
1178 }
1179 return false;
1180 }
1181
1182 final private boolean jj_3R_36() {
1183 if (jj_scan_token(STRING_LITERAL)) {
1184 return true;
1185 }
1186 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1187 return false;
1188 }
1189 return false;
1190 }
1191
1192 final private boolean jj_3_1() {
1193 if (jj_scan_token(IS)) {
1194 return true;
1195 }
1196 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1197 return false;
1198 }
1199 if (jj_scan_token(NULL)) {
1200 return true;
1201 }
1202 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1203 return false;
1204 }
1205 return false;
1206 }
1207
1208 final private boolean jj_3R_12() {
1209 Token xsp;
1210 xsp = jj_scanpos;
1211 if (jj_3R_14()) {
1212 jj_scanpos = xsp;
1213 if (jj_3R_15()) {
1214 jj_scanpos = xsp;
1215 if (jj_3R_16()) {
1216 jj_scanpos = xsp;
1217 if (jj_3R_17()) {
1218 return true;
1219 }
1220 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1221 return false;
1222 }
1223 }
1224 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1225 return false;
1226 }
1227 }
1228 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1229 return false;
1230 }
1231 }
1232 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1233 return false;
1234 }
1235 return false;
1236 }
1237
1238 final private boolean jj_3R_44() {
1239 if (jj_scan_token(25)) {
1240 return true;
1241 }
1242 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1243 return false;
1244 }
1245 if (jj_3R_39()) {
1246 return true;
1247 }
1248 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1249 return false;
1250 }
1251 return false;
1252 }
1253
1254 final private boolean jj_3_3() {
1255 if (jj_scan_token(NOT)) {
1256 return true;
1257 }
1258 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1259 return false;
1260 }
1261 if (jj_scan_token(BETWEEN)) {
1262 return true;
1263 }
1264 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1265 return false;
1266 }
1267 if (jj_3R_41()) {
1268 return true;
1269 }
1270 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1271 return false;
1272 }
1273 if (jj_scan_token(AND)) {
1274 return true;
1275 }
1276 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1277 return false;
1278 }
1279 if (jj_3R_41()) {
1280 return true;
1281 }
1282 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1283 return false;
1284 }
1285 return false;
1286 }
1287
1288 final private boolean jj_3R_43() {
1289 if (jj_scan_token(24)) {
1290 return true;
1291 }
1292 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1293 return false;
1294 }
1295 if (jj_3R_39()) {
1296 return true;
1297 }
1298 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1299 return false;
1300 }
1301 return false;
1302 }
1303
1304 final private boolean jj_3R_40() {
1305 Token xsp;
1306 xsp = jj_scanpos;
1307 if (jj_3R_43()) {
1308 jj_scanpos = xsp;
1309 if (jj_3R_44()) {
1310 jj_scanpos = xsp;
1311 if (jj_3_1()) {
1312 jj_scanpos = xsp;
1313 if (jj_3R_45()) {
1314 return true;
1315 }
1316 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1317 return false;
1318 }
1319 }
1320 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1321 return false;
1322 }
1323 }
1324 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1325 return false;
1326 }
1327 }
1328 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1329 return false;
1330 }
1331 return false;
1332 }
1333
1334 final private boolean jj_3R_52() {
1335 if (jj_scan_token(BETWEEN)) {
1336 return true;
1337 }
1338 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1339 return false;
1340 }
1341 if (jj_3R_41()) {
1342 return true;
1343 }
1344 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1345 return false;
1346 }
1347 if (jj_scan_token(AND)) {
1348 return true;
1349 }
1350 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1351 return false;
1352 }
1353 if (jj_3R_41()) {
1354 return true;
1355 }
1356 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1357 return false;
1358 }
1359 return false;
1360 }
1361
1362 final private boolean jj_3R_33() {
1363 if (jj_scan_token(NULL)) {
1364 return true;
1365 }
1366 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1367 return false;
1368 }
1369 return false;
1370 }
1371
1372 final private boolean jj_3R_56() {
1373 if (jj_scan_token(ESCAPE)) {
1374 return true;
1375 }
1376 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1377 return false;
1378 }
1379 if (jj_3R_36()) {
1380 return true;
1381 }
1382 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1383 return false;
1384 }
1385 return false;
1386 }
1387
1388 final private boolean jj_3R_20() {
1389 if (jj_scan_token(37)) {
1390 return true;
1391 }
1392 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1393 return false;
1394 }
1395 if (jj_3R_12()) {
1396 return true;
1397 }
1398 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1399 return false;
1400 }
1401 return false;
1402 }
1403
1404 final private boolean jj_3R_32() {
1405 if (jj_scan_token(FALSE)) {
1406 return true;
1407 }
1408 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1409 return false;
1410 }
1411 return false;
1412 }
1413
1414 final private boolean jj_3R_37() {
1415 if (jj_3R_39()) {
1416 return true;
1417 }
1418 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1419 return false;
1420 }
1421 Token xsp;
1422 while (true) {
1423 xsp = jj_scanpos;
1424 if (jj_3R_40()) {
1425 jj_scanpos = xsp;
1426 break;
1427 }
1428 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1429 return false;
1430 }
1431 }
1432 return false;
1433 }
1434
1435 final private boolean jj_3_2() {
1436 if (jj_scan_token(NOT)) {
1437 return true;
1438 }
1439 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1440 return false;
1441 }
1442 if (jj_scan_token(LIKE)) {
1443 return true;
1444 }
1445 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1446 return false;
1447 }
1448 if (jj_3R_36()) {
1449 return true;
1450 }
1451 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1452 return false;
1453 }
1454 Token xsp;
1455 xsp = jj_scanpos;
1456 if (jj_3R_57()) {
1457 jj_scanpos = xsp;
1458 }
1459 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1460 return false;
1461 }
1462 return false;
1463 }
1464
1465 final private boolean jj_3R_51() {
1466 if (jj_scan_token(LIKE)) {
1467 return true;
1468 }
1469 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1470 return false;
1471 }
1472 if (jj_3R_36()) {
1473 return true;
1474 }
1475 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1476 return false;
1477 }
1478 Token xsp;
1479 xsp = jj_scanpos;
1480 if (jj_3R_56()) {
1481 jj_scanpos = xsp;
1482 }
1483 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1484 return false;
1485 }
1486 return false;
1487 }
1488
1489 final private boolean jj_3R_19() {
1490 if (jj_scan_token(36)) {
1491 return true;
1492 }
1493 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1494 return false;
1495 }
1496 if (jj_3R_12()) {
1497 return true;
1498 }
1499 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1500 return false;
1501 }
1502 return false;
1503 }
1504
1505 final private boolean jj_3R_31() {
1506 if (jj_scan_token(TRUE)) {
1507 return true;
1508 }
1509 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1510 return false;
1511 }
1512 return false;
1513 }
1514
1515 final private boolean jj_3R_18() {
1516 if (jj_scan_token(35)) {
1517 return true;
1518 }
1519 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1520 return false;
1521 }
1522 if (jj_3R_12()) {
1523 return true;
1524 }
1525 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1526 return false;
1527 }
1528 return false;
1529 }
1530
1531 final private boolean jj_3R_13() {
1532 Token xsp;
1533 xsp = jj_scanpos;
1534 if (jj_3R_18()) {
1535 jj_scanpos = xsp;
1536 if (jj_3R_19()) {
1537 jj_scanpos = xsp;
1538 if (jj_3R_20()) {
1539 return true;
1540 }
1541 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1542 return false;
1543 }
1544 }
1545 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1546 return false;
1547 }
1548 }
1549 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1550 return false;
1551 }
1552 return false;
1553 }
1554
1555 final private boolean jj_3R_38() {
1556 if (jj_scan_token(AND)) {
1557 return true;
1558 }
1559 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1560 return false;
1561 }
1562 if (jj_3R_37()) {
1563 return true;
1564 }
1565 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1566 return false;
1567 }
1568 return false;
1569 }
1570
1571 final private boolean jj_3R_30() {
1572 if (jj_scan_token(FLOATING_POINT_LITERAL)) {
1573 return true;
1574 }
1575 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1576 return false;
1577 }
1578 return false;
1579 }
1580
1581 final private boolean jj_3R_11() {
1582 if (jj_3R_12()) {
1583 return true;
1584 }
1585 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1586 return false;
1587 }
1588 Token xsp;
1589 while (true) {
1590 xsp = jj_scanpos;
1591 if (jj_3R_13()) {
1592 jj_scanpos = xsp;
1593 break;
1594 }
1595 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1596 return false;
1597 }
1598 }
1599 return false;
1600 }
1601
1602 final private boolean jj_3R_10() {
1603 if (jj_scan_token(34)) {
1604 return true;
1605 }
1606 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1607 return false;
1608 }
1609 return false;
1610 }
1611
1612 final private boolean jj_3R_9() {
1613 if (jj_scan_token(33)) {
1614 return true;
1615 }
1616 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1617 return false;
1618 }
1619 return false;
1620 }
1621
1622 final private boolean jj_3R_55() {
1623 if (jj_scan_token(34)) {
1624 return true;
1625 }
1626 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1627 return false;
1628 }
1629 if (jj_3R_11()) {
1630 return true;
1631 }
1632 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1633 return false;
1634 }
1635 return false;
1636 }
1637
1638 final private boolean jj_3R_34() {
1639 if (jj_3R_37()) {
1640 return true;
1641 }
1642 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1643 return false;
1644 }
1645 Token xsp;
1646 while (true) {
1647 xsp = jj_scanpos;
1648 if (jj_3R_38()) {
1649 jj_scanpos = xsp;
1650 break;
1651 }
1652 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1653 return false;
1654 }
1655 }
1656 return false;
1657 }
1658
1659 final private boolean jj_3_5() {
1660 Token xsp;
1661 xsp = jj_scanpos;
1662 if (jj_3R_9()) {
1663 jj_scanpos = xsp;
1664 if (jj_3R_10()) {
1665 return true;
1666 }
1667 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1668 return false;
1669 }
1670 }
1671 else if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1672 return false;
1673 }
1674 if (jj_3R_11()) {
1675 return true;
1676 }
1677 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1678 return false;
1679 }
1680 return false;
1681 }
1682
1683 final private boolean jj_3R_29() {
1684 if (jj_scan_token(INTEGER_LITERAL)) {
1685 return true;
1686 }
1687 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1688 return false;
1689 }
1690 return false;
1691 }
1692
1693 final private boolean jj_3R_50() {
1694 if (jj_scan_token(29)) {
1695 return true;
1696 }
1697 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1698 return false;
1699 }
1700 if (jj_3R_41()) {
1701 return true;
1702 }
1703 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
1704 return false;
1705 }
1706 return false;
1707 }
1708
1709 public SelectorParserTokenManager token_source;
1710 SimpleCharStream jj_input_stream;
1711 public Token token, jj_nt;
1712 private int jj_ntk;
1713 private Token jj_scanpos, jj_lastpos;
1714 private int jj_la;
1715 public boolean lookingAhead = false;
1716 private boolean jj_semLA;
1717
1718 public SelectorParser(java.io.InputStream stream) {
1719 jj_input_stream = new SimpleCharStream(stream, 1, 1);
1720 token_source = new SelectorParserTokenManager(jj_input_stream);
1721 token = new Token();
1722 jj_ntk = -1;
1723 }
1724
1725 public void ReInit(java.io.InputStream stream) {
1726 jj_input_stream.ReInit(stream, 1, 1);
1727 token_source.ReInit(jj_input_stream);
1728 token = new Token();
1729 jj_ntk = -1;
1730 }
1731
1732 public SelectorParser(java.io.Reader stream) {
1733 jj_input_stream = new SimpleCharStream(stream, 1, 1);
1734 token_source = new SelectorParserTokenManager(jj_input_stream);
1735 token = new Token();
1736 jj_ntk = -1;
1737 }
1738
1739 public void ReInit(java.io.Reader stream) {
1740 jj_input_stream.ReInit(stream, 1, 1);
1741 token_source.ReInit(jj_input_stream);
1742 token = new Token();
1743 jj_ntk = -1;
1744 }
1745
1746 public SelectorParser(SelectorParserTokenManager tm) {
1747 token_source = tm;
1748 token = new Token();
1749 jj_ntk = -1;
1750 }
1751
1752 public void ReInit(SelectorParserTokenManager tm) {
1753 token_source = tm;
1754 token = new Token();
1755 jj_ntk = -1;
1756 }
1757
1758 final private Token jj_consume_token(int kind) throws ParseException {
1759 Token oldToken;
1760 if ((oldToken = token).next != null) {
1761 token = token.next;
1762 }
1763 else {
1764 token = token.next = token_source.getNextToken();
1765 }
1766 jj_ntk = -1;
1767 if (token.kind == kind) {
1768 return token;
1769 }
1770 token = oldToken;
1771 throw generateParseException();
1772 }
1773
1774 final private boolean jj_scan_token(int kind) {
1775 if (jj_scanpos == jj_lastpos) {
1776 jj_la--;
1777 if (jj_scanpos.next == null) {
1778 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
1779 }
1780 else {
1781 jj_lastpos = jj_scanpos = jj_scanpos.next;
1782 }
1783 }
1784 else {
1785 jj_scanpos = jj_scanpos.next;
1786 }
1787 return (jj_scanpos.kind != kind);
1788 }
1789
1790 final public Token getNextToken() {
1791 if (token.next != null) {
1792 token = token.next;
1793 }
1794 else {
1795 token = token.next = token_source.getNextToken();
1796 }
1797 jj_ntk = -1;
1798 return token;
1799 }
1800
1801 final public Token getToken(int index) {
1802 Token t = lookingAhead ? jj_scanpos : token;
1803 for (int i = 0; i < index; i++) {
1804 if (t.next != null) {
1805 t = t.next;
1806 }
1807 else {
1808 t = t.next = token_source.getNextToken();
1809 }
1810 }
1811 return t;
1812 }
1813
1814 final private int jj_ntk() {
1815 if ((jj_nt = token.next) == null) {
1816 return (jj_ntk = (token.next = token_source.getNextToken()).kind);
1817 }
1818 else {
1819 return (jj_ntk = jj_nt.kind);
1820 }
1821 }
1822
1823 final public ParseException generateParseException() {
1824 Token errortok = token.next;
1825 int line = errortok.beginLine, column = errortok.beginColumn;
1826 String mess = (errortok.kind == 0) ? tokenImage[0] : errortok.image;
1827 return new ParseException("Parse error at line " + line + ", column " + column + ". Encountered: " + mess);
1828 }
1829
1830 final public void enable_tracing() {
1831 }
1832
1833 final public void disable_tracing() {
1834 }
1835
1836 }