Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/activemq/selector/SelectorParser.java


1   /* Generated By:JavaCC: Do not edit this line. SelectorParser.java */
2   package org.activemq.selector;
3   
4   import java.io.*;
5   import java.util.*;
6   
7   import javax.jms.InvalidSelectorException;
8   
9   import org.activemq.filter.*;
10  
11  /** 
12   * JMS Selector Parser generated by JavaCC
13   * 
14   * Do not edit this .java file directly - it is autogenerated from SelectorParser.jj
15   */
16  public class SelectorParser implements SelectorParserConstants {
17  
18      public SelectorParser() {
19          this(new StringReader(""));
20      }
21  
22      public Filter parse(String sql) throws InvalidSelectorException {
23          this.ReInit(new StringReader(sql));
24  
25          try {
26              return this.JmsSelector();
27          }
28          catch (Throwable e) {
29                  throw (InvalidSelectorException)new InvalidSelectorException("test").initCause(e);
30          }
31  
32      }
33  
34      private BooleanExpression asBooleanExpression(Expression value) throws ParseException  {
35          if (value instanceof BooleanExpression) {
36              return (BooleanExpression) value;
37          }
38          if (value instanceof PropertyExpression) {
39              return UnaryExpression.createBooleanCast( value );
40          }
41          throw new ParseException("Expression will not result in a boolean value: " + value);
42      }
43  
44  // ----------------------------------------------------------------------------
45  // Grammer
46  // ----------------------------------------------------------------------------
47    final public Filter JmsSelector() throws ParseException {
48      Expression left=null;
49      left = orExpression();
50          {if (true) return new ExpressionFilter(asBooleanExpression(left));}
51      throw new Error("Missing return statement in function");
52    }
53  
54    final public Expression orExpression() throws ParseException {
55      Expression left;
56      Expression right;
57      left = andExpression();
58      label_1:
59      while (true) {
60        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
61        case OR:
62          ;
63          break;
64        default:
65          break label_1;
66        }
67        jj_consume_token(OR);
68        right = andExpression();
69                  left = LogicExpression.createOR(asBooleanExpression(left), asBooleanExpression(right));
70      }
71          {if (true) return left;}
72      throw new Error("Missing return statement in function");
73    }
74  
75    final public Expression andExpression() throws ParseException {
76      Expression left;
77      Expression right;
78      left = equalityExpression();
79      label_2:
80      while (true) {
81        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
82        case AND:
83          ;
84          break;
85        default:
86          break label_2;
87        }
88        jj_consume_token(AND);
89        right = equalityExpression();
90                  left = LogicExpression.createAND(asBooleanExpression(left), asBooleanExpression(right));
91      }
92          {if (true) return left;}
93      throw new Error("Missing return statement in function");
94    }
95  
96    final public Expression equalityExpression() throws ParseException {
97      Expression left;
98      Expression right;
99      left = comparisonExpression();
100     label_3:
101     while (true) {
102       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
103       case IS:
104       case 28:
105       case 29:
106         ;
107         break;
108       default:
109         break label_3;
110       }
111       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
112       case 28:
113         jj_consume_token(28);
114         right = comparisonExpression();
115                 left = ComparisonExpression.createEqual(left, right);
116         break;
117       case 29:
118         jj_consume_token(29);
119         right = comparisonExpression();
120                 left = ComparisonExpression.createNotEqual(left, right);
121         break;
122       default:
123         if (jj_2_1(2)) {
124           jj_consume_token(IS);
125           jj_consume_token(NULL);
126                 left = ComparisonExpression.createIsNull(left);
127         } else {
128           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
129           case IS:
130             jj_consume_token(IS);
131             jj_consume_token(NOT);
132             jj_consume_token(NULL);
133                 left = ComparisonExpression.createIsNotNull(left);
134             break;
135           default:
136             jj_consume_token(-1);
137             throw new ParseException();
138           }
139         }
140       }
141     }
142         {if (true) return left;}
143     throw new Error("Missing return statement in function");
144   }
145 
146   final public Expression comparisonExpression() throws ParseException {
147     Expression left;
148     Expression right;
149     Expression low;
150     Expression high;
151     String t, u;
152         boolean not;
153         ArrayList list;
154     left = addExpression();
155     label_4:
156     while (true) {
157       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
158       case NOT:
159       case BETWEEN:
160       case LIKE:
161       case IN:
162       case 30:
163       case 31:
164       case 32:
165       case 33:
166         ;
167         break;
168       default:
169         break label_4;
170       }
171       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
172       case 30:
173         jj_consume_token(30);
174         right = addExpression();
175                     left = ComparisonExpression.createGreaterThan(left, right);
176         break;
177       case 31:
178         jj_consume_token(31);
179         right = addExpression();
180                     left = ComparisonExpression.createGreaterThanEqual(left, right);
181         break;
182       case 32:
183         jj_consume_token(32);
184         right = addExpression();
185                     left = ComparisonExpression.createLessThan(left, right);
186         break;
187       case 33:
188         jj_consume_token(33);
189         right = addExpression();
190                     left = ComparisonExpression.createLessThanEqual(left, right);
191         break;
192       case LIKE:
193                                         u=null;
194         jj_consume_token(LIKE);
195         t = stringLitteral();
196         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
197         case ESCAPE:
198           jj_consume_token(ESCAPE);
199           u = stringLitteral();
200           break;
201         default:
202           ;
203         }
204                     left = ComparisonExpression.createLike(left, t, u);
205         break;
206       default:
207         if (jj_2_2(2)) {
208                                         u=null;
209           jj_consume_token(NOT);
210           jj_consume_token(LIKE);
211           t = stringLitteral();
212           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
213           case ESCAPE:
214             jj_consume_token(ESCAPE);
215             u = stringLitteral();
216             break;
217           default:
218             ;
219           }
220                     left = ComparisonExpression.createNotLike(left, t, u);
221         } else {
222           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
223           case BETWEEN:
224             jj_consume_token(BETWEEN);
225             low = addExpression();
226             jj_consume_token(AND);
227             high = addExpression();
228                                         left = ComparisonExpression.createBetween(left, low, high);
229             break;
230           default:
231             if (jj_2_3(2)) {
232               jj_consume_token(NOT);
233               jj_consume_token(BETWEEN);
234               low = addExpression();
235               jj_consume_token(AND);
236               high = addExpression();
237                                         left = ComparisonExpression.createNotBetween(left, low, high);
238             } else {
239               switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
240               case IN:
241                 jj_consume_token(IN);
242                 jj_consume_token(34);
243                 t = stringLitteral();
244                                     list = new ArrayList();
245                                     list.add( t );
246                 label_5:
247                 while (true) {
248                   switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
249                   case 35:
250                     ;
251                     break;
252                   default:
253                     break label_5;
254                   }
255                   jj_consume_token(35);
256                   t = stringLitteral();
257                                             list.add( t );
258                 }
259                 jj_consume_token(36);
260                            left = ComparisonExpression.createInFilter(left, list);
261                 break;
262               default:
263                 if (jj_2_4(2)) {
264                   jj_consume_token(NOT);
265                   jj_consume_token(IN);
266                   jj_consume_token(34);
267                   t = stringLitteral();
268                                     list = new ArrayList();
269                                     list.add( t );
270                   label_6:
271                   while (true) {
272                     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
273                     case 35:
274                       ;
275                       break;
276                     default:
277                       break label_6;
278                     }
279                     jj_consume_token(35);
280                     t = stringLitteral();
281                                             list.add( t );
282                   }
283                   jj_consume_token(36);
284                            left = ComparisonExpression.createNotInFilter(left, list);
285                 } else {
286                   jj_consume_token(-1);
287                   throw new ParseException();
288                 }
289               }
290             }
291           }
292         }
293       }
294     }
295         {if (true) return left;}
296     throw new Error("Missing return statement in function");
297   }
298 
299   final public Expression addExpression() throws ParseException {
300     Expression left;
301     Expression right;
302     left = multExpr();
303     label_7:
304     while (true) {
305       if (jj_2_5(2147483647)) {
306         ;
307       } else {
308         break label_7;
309       }
310       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
311       case 37:
312         jj_consume_token(37);
313         right = multExpr();
314                     left = ArithmeticExpression.createPlus(left, right);
315         break;
316       case 38:
317         jj_consume_token(38);
318         right = multExpr();
319                     left = ArithmeticExpression.createMinus(left, right);
320         break;
321       default:
322         jj_consume_token(-1);
323         throw new ParseException();
324       }
325     }
326         {if (true) return left;}
327     throw new Error("Missing return statement in function");
328   }
329 
330   final public Expression multExpr() throws ParseException {
331     Expression left;
332     Expression right;
333     left = unaryExpr();
334     label_8:
335     while (true) {
336       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
337       case 39:
338       case 40:
339       case 41:
340         ;
341         break;
342       default:
343         break label_8;
344       }
345       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
346       case 39:
347         jj_consume_token(39);
348         right = unaryExpr();
349                 left = ArithmeticExpression.createMultiply(left, right);
350         break;
351       case 40:
352         jj_consume_token(40);
353         right = unaryExpr();
354                 left = ArithmeticExpression.createDivide(left, right);
355         break;
356       case 41:
357         jj_consume_token(41);
358         right = unaryExpr();
359                 left = ArithmeticExpression.createMod(left, right);
360         break;
361       default:
362         jj_consume_token(-1);
363         throw new ParseException();
364       }
365     }
366         {if (true) return left;}
367     throw new Error("Missing return statement in function");
368   }
369 
370   final public Expression unaryExpr() throws ParseException {
371     String s=null;
372     Expression left=null;
373     if (jj_2_6(2147483647)) {
374       jj_consume_token(37);
375       left = unaryExpr();
376     } else {
377       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
378       case 38:
379         jj_consume_token(38);
380         left = unaryExpr();
381                 left = UnaryExpression.createNegate(left);
382         break;
383       case NOT:
384         jj_consume_token(NOT);
385         left = unaryExpr();
386                     left = UnaryExpression.createNOT( asBooleanExpression(left) );
387         break;
388       case XPATH:
389         jj_consume_token(XPATH);
390         s = stringLitteral();
391                     left = UnaryExpression.createXPath( s );
392         break;
393       case XQUERY:
394         jj_consume_token(XQUERY);
395         s = stringLitteral();
396                     left = UnaryExpression.createXQuery( s );
397         break;
398       case TRUE:
399       case FALSE:
400       case NULL:
401       case DECIMAL_LITERAL:
402       case HEX_LITERAL:
403       case OCTAL_LITERAL:
404       case FLOATING_POINT_LITERAL:
405       case STRING_LITERAL:
406       case ID:
407       case 34:
408         left = primaryExpr();
409         break;
410       default:
411         jj_consume_token(-1);
412         throw new ParseException();
413       }
414     }
415         {if (true) return left;}
416     throw new Error("Missing return statement in function");
417   }
418 
419   final public Expression primaryExpr() throws ParseException {
420     Expression left=null;
421     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
422     case TRUE:
423     case FALSE:
424     case NULL:
425     case DECIMAL_LITERAL:
426     case HEX_LITERAL:
427     case OCTAL_LITERAL:
428     case FLOATING_POINT_LITERAL:
429     case STRING_LITERAL:
430       left = literal();
431       break;
432     case ID:
433       left = variable();
434       break;
435     case 34:
436       jj_consume_token(34);
437       left = orExpression();
438       jj_consume_token(36);
439       break;
440     default:
441       jj_consume_token(-1);
442       throw new ParseException();
443     }
444         {if (true) return left;}
445     throw new Error("Missing return statement in function");
446   }
447 
448   final public ConstantExpression literal() throws ParseException {
449     Token t;
450     String s;
451     ConstantExpression left=null;
452     switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
453     case STRING_LITERAL:
454       s = stringLitteral();
455                 left = new ConstantExpression(s);
456       break;
457     case DECIMAL_LITERAL:
458       t = jj_consume_token(DECIMAL_LITERAL);
459                 left = ConstantExpression.createFromDecimal(t.image);
460       break;
461     case HEX_LITERAL:
462       t = jj_consume_token(HEX_LITERAL);
463                 left = ConstantExpression.createFromHex(t.image);
464       break;
465     case OCTAL_LITERAL:
466       t = jj_consume_token(OCTAL_LITERAL);
467                 left = ConstantExpression.createFromOctal(t.image);
468       break;
469     case FLOATING_POINT_LITERAL:
470       t = jj_consume_token(FLOATING_POINT_LITERAL);
471                 left = ConstantExpression.createFloat(t.image);
472       break;
473     case TRUE:
474       jj_consume_token(TRUE);
475                 left = ConstantExpression.TRUE;
476       break;
477     case FALSE:
478       jj_consume_token(FALSE);
479                 left = ConstantExpression.FALSE;
480       break;
481     case NULL:
482       jj_consume_token(NULL);
483                 left = ConstantExpression.NULL;
484       break;
485     default:
486       jj_consume_token(-1);
487       throw new ParseException();
488     }
489         {if (true) return left;}
490     throw new Error("Missing return statement in function");
491   }
492 
493   final public String stringLitteral() throws ParseException {
494     Token t;
495     StringBuffer rc = new StringBuffer();
496     boolean first=true;
497     t = jj_consume_token(STRING_LITERAL);
498         // Decode the sting value.
499         String image = t.image;
500         for( int i=1; i < image.length()-1; i++ ) {
501                 char c = image.charAt(i);
502                 if( c == '\'' )
503                         i++;
504                         rc.append(c);
505         }
506             {if (true) return rc.toString();}
507     throw new Error("Missing return statement in function");
508   }
509 
510   final public PropertyExpression variable() throws ParseException {
511     Token t;
512     PropertyExpression left=null;
513     t = jj_consume_token(ID);
514             left = new PropertyExpression(t.image);
515         {if (true) return left;}
516     throw new Error("Missing return statement in function");
517   }
518 
519   final private boolean jj_2_1(int xla) {
520     jj_la = xla; jj_lastpos = jj_scanpos = token;
521     return !jj_3_1();
522   }
523 
524   final private boolean jj_2_2(int xla) {
525     jj_la = xla; jj_lastpos = jj_scanpos = token;
526     return !jj_3_2();
527   }
528 
529   final private boolean jj_2_3(int xla) {
530     jj_la = xla; jj_lastpos = jj_scanpos = token;
531     return !jj_3_3();
532   }
533 
534   final private boolean jj_2_4(int xla) {
535     jj_la = xla; jj_lastpos = jj_scanpos = token;
536     return !jj_3_4();
537   }
538 
539   final private boolean jj_2_5(int xla) {
540     jj_la = xla; jj_lastpos = jj_scanpos = token;
541     return !jj_3_5();
542   }
543 
544   final private boolean jj_2_6(int xla) {
545     jj_la = xla; jj_lastpos = jj_scanpos = token;
546     return !jj_3_6();
547   }
548 
549   final private boolean jj_3R_53() {
550     if (jj_scan_token(32)) return true;
551     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
552     if (jj_3R_45()) return true;
553     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
554     return false;
555   }
556 
557   final private boolean jj_3R_29() {
558     if (jj_scan_token(ID)) return true;
559     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
560     return false;
561   }
562 
563   final private boolean jj_3R_63() {
564     if (jj_scan_token(35)) return true;
565     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
566     if (jj_3R_23()) return true;
567     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
568     return false;
569   }
570 
571   final private boolean jj_3R_50() {
572     Token xsp;
573     xsp = jj_scanpos;
574     if (jj_3R_58()) {
575     jj_scanpos = xsp;
576     if (jj_3R_59()) return true;
577     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
578     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
579     return false;
580   }
581 
582   final private boolean jj_3R_40() {
583     if (jj_scan_token(OR)) return true;
584     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
585     if (jj_3R_39()) return true;
586     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
587     return false;
588   }
589 
590   final private boolean jj_3R_52() {
591     if (jj_scan_token(31)) return true;
592     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
593     if (jj_3R_45()) return true;
594     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
595     return false;
596   }
597 
598   final private boolean jj_3R_27() {
599     if (jj_scan_token(34)) return true;
600     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
601     if (jj_3R_30()) return true;
602     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
603     if (jj_scan_token(36)) return true;
604     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
605     return false;
606   }
607 
608   final private boolean jj_3R_26() {
609     if (jj_3R_29()) return true;
610     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
611     return false;
612   }
613 
614   final private boolean jj_3R_51() {
615     if (jj_scan_token(30)) return true;
616     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
617     if (jj_3R_45()) return true;
618     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
619     return false;
620   }
621 
622   final private boolean jj_3R_46() {
623     Token xsp;
624     xsp = jj_scanpos;
625     if (jj_3R_51()) {
626     jj_scanpos = xsp;
627     if (jj_3R_52()) {
628     jj_scanpos = xsp;
629     if (jj_3R_53()) {
630     jj_scanpos = xsp;
631     if (jj_3R_54()) {
632     jj_scanpos = xsp;
633     if (jj_3R_55()) {
634     jj_scanpos = xsp;
635     if (jj_3_2()) {
636     jj_scanpos = xsp;
637     if (jj_3R_56()) {
638     jj_scanpos = xsp;
639     if (jj_3_3()) {
640     jj_scanpos = xsp;
641     if (jj_3R_57()) {
642     jj_scanpos = xsp;
643     if (jj_3_4()) return true;
644     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
645     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
646     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
647     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
648     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
649     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
650     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
651     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
652     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
653     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
654     return false;
655   }
656 
657   final private boolean jj_3R_25() {
658     if (jj_3R_28()) return true;
659     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
660     return false;
661   }
662 
663   final private boolean jj_3R_45() {
664     if (jj_3R_11()) return true;
665     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
666     Token xsp;
667     while (true) {
668       xsp = jj_scanpos;
669       if (jj_3R_50()) { jj_scanpos = xsp; break; }
670       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
671     }
672     return false;
673   }
674 
675   final private boolean jj_3R_30() {
676     if (jj_3R_39()) return true;
677     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
678     Token xsp;
679     while (true) {
680       xsp = jj_scanpos;
681       if (jj_3R_40()) { jj_scanpos = xsp; break; }
682       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
683     }
684     return false;
685   }
686 
687   final private boolean jj_3R_24() {
688     Token xsp;
689     xsp = jj_scanpos;
690     if (jj_3R_25()) {
691     jj_scanpos = xsp;
692     if (jj_3R_26()) {
693     jj_scanpos = xsp;
694     if (jj_3R_27()) return true;
695     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
696     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
697     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
698     return false;
699   }
700 
701   final private boolean jj_3R_19() {
702     if (jj_3R_24()) return true;
703     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
704     return false;
705   }
706 
707   final private boolean jj_3R_23() {
708     if (jj_scan_token(STRING_LITERAL)) return true;
709     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
710     return false;
711   }
712 
713   final private boolean jj_3R_62() {
714     if (jj_scan_token(35)) return true;
715     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
716     if (jj_3R_23()) return true;
717     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
718     return false;
719   }
720 
721   final private boolean jj_3R_18() {
722     if (jj_scan_token(XQUERY)) return true;
723     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
724     if (jj_3R_23()) return true;
725     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
726     return false;
727   }
728 
729   final private boolean jj_3R_43() {
730     if (jj_3R_45()) return true;
731     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
732     Token xsp;
733     while (true) {
734       xsp = jj_scanpos;
735       if (jj_3R_46()) { jj_scanpos = xsp; break; }
736       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
737     }
738     return false;
739   }
740 
741   final private boolean jj_3R_61() {
742     if (jj_scan_token(ESCAPE)) return true;
743     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
744     if (jj_3R_23()) return true;
745     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
746     return false;
747   }
748 
749   final private boolean jj_3_4() {
750     if (jj_scan_token(NOT)) return true;
751     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
752     if (jj_scan_token(IN)) return true;
753     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
754     if (jj_scan_token(34)) return true;
755     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
756     if (jj_3R_23()) return true;
757     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
758     Token xsp;
759     while (true) {
760       xsp = jj_scanpos;
761       if (jj_3R_63()) { jj_scanpos = xsp; break; }
762       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
763     }
764     if (jj_scan_token(36)) return true;
765     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
766     return false;
767   }
768 
769   final private boolean jj_3_6() {
770     if (jj_scan_token(37)) return true;
771     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
772     if (jj_3R_12()) return true;
773     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
774     return false;
775   }
776 
777   final private boolean jj_3R_17() {
778     if (jj_scan_token(XPATH)) return true;
779     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
780     if (jj_3R_23()) return true;
781     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
782     return false;
783   }
784 
785   final private boolean jj_3R_38() {
786     if (jj_scan_token(NULL)) return true;
787     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
788     return false;
789   }
790 
791   final private boolean jj_3R_16() {
792     if (jj_scan_token(NOT)) return true;
793     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
794     if (jj_3R_12()) return true;
795     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
796     return false;
797   }
798 
799   final private boolean jj_3R_14() {
800     if (jj_scan_token(37)) return true;
801     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
802     if (jj_3R_12()) return true;
803     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
804     return false;
805   }
806 
807   final private boolean jj_3R_57() {
808     if (jj_scan_token(IN)) return true;
809     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
810     if (jj_scan_token(34)) return true;
811     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
812     if (jj_3R_23()) return true;
813     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
814     Token xsp;
815     while (true) {
816       xsp = jj_scanpos;
817       if (jj_3R_62()) { jj_scanpos = xsp; break; }
818       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
819     }
820     if (jj_scan_token(36)) return true;
821     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
822     return false;
823   }
824 
825   final private boolean jj_3R_49() {
826     if (jj_scan_token(IS)) return true;
827     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
828     if (jj_scan_token(NOT)) return true;
829     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
830     if (jj_scan_token(NULL)) return true;
831     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
832     return false;
833   }
834 
835   final private boolean jj_3R_15() {
836     if (jj_scan_token(38)) return true;
837     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
838     if (jj_3R_12()) return true;
839     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
840     return false;
841   }
842 
843   final private boolean jj_3R_37() {
844     if (jj_scan_token(FALSE)) return true;
845     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
846     return false;
847   }
848 
849   final private boolean jj_3_1() {
850     if (jj_scan_token(IS)) return true;
851     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
852     if (jj_scan_token(NULL)) return true;
853     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
854     return false;
855   }
856 
857   final private boolean jj_3R_12() {
858     Token xsp;
859     xsp = jj_scanpos;
860     if (jj_3R_14()) {
861     jj_scanpos = xsp;
862     if (jj_3R_15()) {
863     jj_scanpos = xsp;
864     if (jj_3R_16()) {
865     jj_scanpos = xsp;
866     if (jj_3R_17()) {
867     jj_scanpos = xsp;
868     if (jj_3R_18()) {
869     jj_scanpos = xsp;
870     if (jj_3R_19()) return true;
871     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
872     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
873     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
874     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
875     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
876     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
877     return false;
878   }
879 
880   final private boolean jj_3R_36() {
881     if (jj_scan_token(TRUE)) return true;
882     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
883     return false;
884   }
885 
886   final private boolean jj_3R_48() {
887     if (jj_scan_token(29)) return true;
888     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
889     if (jj_3R_43()) return true;
890     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
891     return false;
892   }
893 
894   final private boolean jj_3_3() {
895     if (jj_scan_token(NOT)) return true;
896     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
897     if (jj_scan_token(BETWEEN)) return true;
898     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
899     if (jj_3R_45()) return true;
900     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
901     if (jj_scan_token(AND)) return true;
902     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
903     if (jj_3R_45()) return true;
904     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
905     return false;
906   }
907 
908   final private boolean jj_3R_47() {
909     if (jj_scan_token(28)) return true;
910     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
911     if (jj_3R_43()) return true;
912     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
913     return false;
914   }
915 
916   final private boolean jj_3R_44() {
917     Token xsp;
918     xsp = jj_scanpos;
919     if (jj_3R_47()) {
920     jj_scanpos = xsp;
921     if (jj_3R_48()) {
922     jj_scanpos = xsp;
923     if (jj_3_1()) {
924     jj_scanpos = xsp;
925     if (jj_3R_49()) return true;
926     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
927     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
928     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
929     } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
930     return false;
931   }
932 
933   final private boolean jj_3R_35() {
934     if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
935     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
936     return false;
937   }
938 
939   final private boolean jj_3R_56() {
940     if (jj_scan_token(BETWEEN)) return true;
941     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
942     if (jj_3R_45()) return true;
943     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
944     if (jj_scan_token(AND)) return true;
945     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
946     if (jj_3R_45()) return true;
947     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
948     return false;
949   }
950 
951   final private boolean jj_3R_60() {
952     if (jj_scan_token(ESCAPE)) return true;
953     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
954     if (jj_3R_23()) return true;
955     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
956     return false;
957   }
958 
959   final private boolean jj_3R_34() {
960     if (jj_scan_token(OCTAL_LITERAL)) return true;
961     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
962     return false;
963   }
964 
965   final private boolean jj_3R_22() {
966     if (jj_scan_token(41)) return true;
967     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
968     if (jj_3R_12()) return true;
969     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
970     return false;
971   }
972 
973   final private boolean jj_3R_41() {
974     if (jj_3R_43()) return true;
975     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
976     Token xsp;
977     while (true) {
978       xsp = jj_scanpos;
979       if (jj_3R_44()) { jj_scanpos = xsp; break; }
980       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
981     }
982     return false;
983   }
984 
985   final private boolean jj_3_2() {
986     if (jj_scan_token(NOT)) return true;
987     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
988     if (jj_scan_token(LIKE)) return true;
989     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
990     if (jj_3R_23()) return true;
991     if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
992     Token xsp;
993     xsp = jj_scanpos;
994     if (jj_3R_61()) jj_scanpos = xsp;
995     else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
996     return false;
997   }
998 
999   final private boolean jj_3R_55() {
1000    if (jj_scan_token(LIKE)) return true;
1001    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1002    if (jj_3R_23()) return true;
1003    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1004    Token xsp;
1005    xsp = jj_scanpos;
1006    if (jj_3R_60()) jj_scanpos = xsp;
1007    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1008    return false;
1009  }
1010
1011  final private boolean jj_3R_33() {
1012    if (jj_scan_token(HEX_LITERAL)) return true;
1013    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1014    return false;
1015  }
1016
1017  final private boolean jj_3R_21() {
1018    if (jj_scan_token(40)) return true;
1019    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1020    if (jj_3R_12()) return true;
1021    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1022    return false;
1023  }
1024
1025  final private boolean jj_3R_13() {
1026    Token xsp;
1027    xsp = jj_scanpos;
1028    if (jj_3R_20()) {
1029    jj_scanpos = xsp;
1030    if (jj_3R_21()) {
1031    jj_scanpos = xsp;
1032    if (jj_3R_22()) return true;
1033    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1034    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1035    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1036    return false;
1037  }
1038
1039  final private boolean jj_3R_20() {
1040    if (jj_scan_token(39)) return true;
1041    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1042    if (jj_3R_12()) return true;
1043    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1044    return false;
1045  }
1046
1047  final private boolean jj_3R_42() {
1048    if (jj_scan_token(AND)) return true;
1049    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1050    if (jj_3R_41()) return true;
1051    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1052    return false;
1053  }
1054
1055  final private boolean jj_3R_32() {
1056    if (jj_scan_token(DECIMAL_LITERAL)) return true;
1057    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1058    return false;
1059  }
1060
1061  final private boolean jj_3R_11() {
1062    if (jj_3R_12()) return true;
1063    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1064    Token xsp;
1065    while (true) {
1066      xsp = jj_scanpos;
1067      if (jj_3R_13()) { jj_scanpos = xsp; break; }
1068      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1069    }
1070    return false;
1071  }
1072
1073  final private boolean jj_3R_10() {
1074    if (jj_scan_token(38)) return true;
1075    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1076    return false;
1077  }
1078
1079  final private boolean jj_3R_31() {
1080    if (jj_3R_23()) return true;
1081    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1082    return false;
1083  }
1084
1085  final private boolean jj_3R_9() {
1086    if (jj_scan_token(37)) return true;
1087    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1088    return false;
1089  }
1090
1091  final private boolean jj_3R_59() {
1092    if (jj_scan_token(38)) return true;
1093    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1094    if (jj_3R_11()) return true;
1095    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1096    return false;
1097  }
1098
1099  final private boolean jj_3R_39() {
1100    if (jj_3R_41()) return true;
1101    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1102    Token xsp;
1103    while (true) {
1104      xsp = jj_scanpos;
1105      if (jj_3R_42()) { jj_scanpos = xsp; break; }
1106      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1107    }
1108    return false;
1109  }
1110
1111  final private boolean jj_3_5() {
1112    Token xsp;
1113    xsp = jj_scanpos;
1114    if (jj_3R_9()) {
1115    jj_scanpos = xsp;
1116    if (jj_3R_10()) return true;
1117    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1118    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1119    if (jj_3R_11()) return true;
1120    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1121    return false;
1122  }
1123
1124  final private boolean jj_3R_28() {
1125    Token xsp;
1126    xsp = jj_scanpos;
1127    if (jj_3R_31()) {
1128    jj_scanpos = xsp;
1129    if (jj_3R_32()) {
1130    jj_scanpos = xsp;
1131    if (jj_3R_33()) {
1132    jj_scanpos = xsp;
1133    if (jj_3R_34()) {
1134    jj_scanpos = xsp;
1135    if (jj_3R_35()) {
1136    jj_scanpos = xsp;
1137    if (jj_3R_36()) {
1138    jj_scanpos = xsp;
1139    if (jj_3R_37()) {
1140    jj_scanpos = xsp;
1141    if (jj_3R_38()) return true;
1142    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1143    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1144    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1145    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1146    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1147    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1148    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1149    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1150    return false;
1151  }
1152
1153  final private boolean jj_3R_54() {
1154    if (jj_scan_token(33)) return true;
1155    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1156    if (jj_3R_45()) return true;
1157    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1158    return false;
1159  }
1160
1161  final private boolean jj_3R_58() {
1162    if (jj_scan_token(37)) return true;
1163    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1164    if (jj_3R_11()) return true;
1165    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1166    return false;
1167  }
1168
1169  public SelectorParserTokenManager token_source;
1170  SimpleCharStream jj_input_stream;
1171  public Token token, jj_nt;
1172  private int jj_ntk;
1173  private Token jj_scanpos, jj_lastpos;
1174  private int jj_la;
1175