KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > jxpath > ri > parser > XPathParser


1 /* Generated By:JavaCC: Do not edit this line. XPathParser.java */
2     package org.apache.commons.jxpath.ri.parser;
3
4     import org.apache.commons.jxpath.ri.Compiler;
5     import java.util.ArrayList;
6
7     public class XPathParser implements XPathParserConstants {
8         private Compiler compiler;
9
10         public void setCompiler(Compiler compiler){
11             this.compiler = compiler;
12         }
13
14         private String unescape(String string){
15             int index = string.indexOf("'");
16             while (index != -1){
17                 string = string.substring(0, index) + "\'" + string.substring(index + 6);
18                 index = string.indexOf("'");
19             }
20             index = string.indexOf(""");
21             while (index != -1){
22                 string = string.substring(0, index) + "\"" + string.substring(index + 6);
23                 index = string.indexOf(""");
24             }
25             return string;
26         }
27
28 // Note: XPath does not have reserved words, so we have to include all these terminals
29
final public String NCName() throws ParseException {
30     switch (jj_nt.kind) {
31     case OR:
32     case AND:
33     case MOD:
34     case DIV:
35     case NCName:
36       NCName_Without_CoreFunctions();
37       break;
38     case NODE:
39       jj_consume_token(NODE);
40       break;
41     case TEXT:
42       jj_consume_token(TEXT);
43       break;
44     case COMMENT:
45       jj_consume_token(COMMENT);
46       break;
47     case PI:
48       jj_consume_token(PI);
49       break;
50     case FUNCTION_LAST:
51       jj_consume_token(FUNCTION_LAST);
52       break;
53     case FUNCTION_POSITION:
54       jj_consume_token(FUNCTION_POSITION);
55       break;
56     case FUNCTION_COUNT:
57       jj_consume_token(FUNCTION_COUNT);
58       break;
59     case FUNCTION_ID:
60       jj_consume_token(FUNCTION_ID);
61       break;
62     case FUNCTION_LOCAL_NAME:
63       jj_consume_token(FUNCTION_LOCAL_NAME);
64       break;
65     case FUNCTION_NAMESPACE_URI:
66       jj_consume_token(FUNCTION_NAMESPACE_URI);
67       break;
68     case FUNCTION_NAME:
69       jj_consume_token(FUNCTION_NAME);
70       break;
71     case FUNCTION_STRING:
72       jj_consume_token(FUNCTION_STRING);
73       break;
74     case FUNCTION_CONCAT:
75       jj_consume_token(FUNCTION_CONCAT);
76       break;
77     case FUNCTION_STARTS_WITH:
78       jj_consume_token(FUNCTION_STARTS_WITH);
79       break;
80     case FUNCTION_CONTAINS:
81       jj_consume_token(FUNCTION_CONTAINS);
82       break;
83     case FUNCTION_SUBSTRING_BEFORE:
84       jj_consume_token(FUNCTION_SUBSTRING_BEFORE);
85       break;
86     case FUNCTION_SUBSTRING_AFTER:
87       jj_consume_token(FUNCTION_SUBSTRING_AFTER);
88       break;
89     case FUNCTION_SUBSTRING:
90       jj_consume_token(FUNCTION_SUBSTRING);
91       break;
92     case FUNCTION_STRING_LENGTH:
93       jj_consume_token(FUNCTION_STRING_LENGTH);
94       break;
95     case FUNCTION_NORMALIZE_SPACE:
96       jj_consume_token(FUNCTION_NORMALIZE_SPACE);
97       break;
98     case FUNCTION_TRANSLATE:
99       jj_consume_token(FUNCTION_TRANSLATE);
100       break;
101     case FUNCTION_BOOLEAN:
102       jj_consume_token(FUNCTION_BOOLEAN);
103       break;
104     case FUNCTION_NOT:
105       jj_consume_token(FUNCTION_NOT);
106       break;
107     case FUNCTION_TRUE:
108       jj_consume_token(FUNCTION_TRUE);
109       break;
110     case FUNCTION_FALSE:
111       jj_consume_token(FUNCTION_FALSE);
112       break;
113     case FUNCTION_NULL:
114       jj_consume_token(FUNCTION_NULL);
115       break;
116     case FUNCTION_LANG:
117       jj_consume_token(FUNCTION_LANG);
118       break;
119     case FUNCTION_NUMBER:
120       jj_consume_token(FUNCTION_NUMBER);
121       break;
122     case FUNCTION_SUM:
123       jj_consume_token(FUNCTION_SUM);
124       break;
125     case FUNCTION_FLOOR:
126       jj_consume_token(FUNCTION_FLOOR);
127       break;
128     case FUNCTION_CEILING:
129       jj_consume_token(FUNCTION_CEILING);
130       break;
131     case FUNCTION_ROUND:
132       jj_consume_token(FUNCTION_ROUND);
133       break;
134     case FUNCTION_KEY:
135       jj_consume_token(FUNCTION_KEY);
136       break;
137     case FUNCTION_FORMAT_NUMBER:
138       jj_consume_token(FUNCTION_FORMAT_NUMBER);
139       break;
140     default:
141       jj_la1[0] = jj_gen;
142       jj_consume_token(-1);
143       throw new ParseException();
144     }
145         {if (true) return token.image;}
146     throw new Error("Missing return statement in function");
147   }
148
149   final public String NCName_Without_CoreFunctions() throws ParseException {
150     switch (jj_nt.kind) {
151     case NCName:
152       jj_consume_token(NCName);
153       break;
154     case OR:
155       jj_consume_token(OR);
156       break;
157     case AND:
158       jj_consume_token(AND);
159       break;
160     case MOD:
161       jj_consume_token(MOD);
162       break;
163     case DIV:
164       jj_consume_token(DIV);
165       break;
166     default:
167       jj_la1[1] = jj_gen;
168       jj_consume_token(-1);
169       throw new ParseException();
170     }
171         {if (true) return token.image;}
172     throw new Error("Missing return statement in function");
173   }
174
175   final public int CoreFunctionName() throws ParseException {
176     int code;
177     switch (jj_nt.kind) {
178     case FUNCTION_LAST:
179       jj_consume_token(FUNCTION_LAST);
180                                       code = Compiler.FUNCTION_LAST;
181       break;
182     case FUNCTION_POSITION:
183       jj_consume_token(FUNCTION_POSITION);
184                                       code = Compiler.FUNCTION_POSITION;
185       break;
186     case FUNCTION_COUNT:
187       jj_consume_token(FUNCTION_COUNT);
188                                       code = Compiler.FUNCTION_COUNT;
189       break;
190     case FUNCTION_ID:
191       jj_consume_token(FUNCTION_ID);
192                                       code = Compiler.FUNCTION_ID;
193       break;
194     case FUNCTION_LOCAL_NAME:
195       jj_consume_token(FUNCTION_LOCAL_NAME);
196                                       code = Compiler.FUNCTION_LOCAL_NAME;
197       break;
198     case FUNCTION_NAMESPACE_URI:
199       jj_consume_token(FUNCTION_NAMESPACE_URI);
200                                       code = Compiler.FUNCTION_NAMESPACE_URI;
201       break;
202     case FUNCTION_NAME:
203       jj_consume_token(FUNCTION_NAME);
204                                       code = Compiler.FUNCTION_NAME;
205       break;
206     case FUNCTION_STRING:
207       jj_consume_token(FUNCTION_STRING);
208                                       code = Compiler.FUNCTION_STRING;
209       break;
210     case FUNCTION_CONCAT:
211       jj_consume_token(FUNCTION_CONCAT);
212                                       code = Compiler.FUNCTION_CONCAT;
213       break;
214     case FUNCTION_STARTS_WITH:
215       jj_consume_token(FUNCTION_STARTS_WITH);
216                                       code = Compiler.FUNCTION_STARTS_WITH;
217       break;
218     case FUNCTION_CONTAINS:
219       jj_consume_token(FUNCTION_CONTAINS);
220                                       code = Compiler.FUNCTION_CONTAINS;
221       break;
222     case FUNCTION_SUBSTRING_BEFORE:
223       jj_consume_token(FUNCTION_SUBSTRING_BEFORE);
224                                       code = Compiler.FUNCTION_SUBSTRING_BEFORE;
225       break;
226     case FUNCTION_SUBSTRING_AFTER:
227       jj_consume_token(FUNCTION_SUBSTRING_AFTER);
228                                       code = Compiler.FUNCTION_SUBSTRING_AFTER;
229       break;
230     case FUNCTION_SUBSTRING:
231       jj_consume_token(FUNCTION_SUBSTRING);
232                                       code = Compiler.FUNCTION_SUBSTRING;
233       break;
234     case FUNCTION_STRING_LENGTH:
235       jj_consume_token(FUNCTION_STRING_LENGTH);
236                                       code = Compiler.FUNCTION_STRING_LENGTH;
237       break;
238     case FUNCTION_NORMALIZE_SPACE:
239       jj_consume_token(FUNCTION_NORMALIZE_SPACE);
240                                       code = Compiler.FUNCTION_NORMALIZE_SPACE;
241       break;
242     case FUNCTION_TRANSLATE:
243       jj_consume_token(FUNCTION_TRANSLATE);
244                                       code = Compiler.FUNCTION_TRANSLATE;
245       break;
246     case FUNCTION_BOOLEAN:
247       jj_consume_token(FUNCTION_BOOLEAN);
248                                       code = Compiler.FUNCTION_BOOLEAN;
249       break;
250     case FUNCTION_NOT:
251       jj_consume_token(FUNCTION_NOT);
252                                       code = Compiler.FUNCTION_NOT;
253       break;
254     case FUNCTION_TRUE:
255       jj_consume_token(FUNCTION_TRUE);
256                                       code = Compiler.FUNCTION_TRUE;
257       break;
258     case FUNCTION_FALSE:
259       jj_consume_token(FUNCTION_FALSE);
260                                       code = Compiler.FUNCTION_FALSE;
261       break;
262     case FUNCTION_NULL:
263       jj_consume_token(FUNCTION_NULL);
264                                       code = Compiler.FUNCTION_NULL;
265       break;
266     case FUNCTION_LANG:
267       jj_consume_token(FUNCTION_LANG);
268                                       code = Compiler.FUNCTION_LANG;
269       break;
270     case FUNCTION_NUMBER:
271       jj_consume_token(FUNCTION_NUMBER);
272                                       code = Compiler.FUNCTION_NUMBER;
273       break;
274     case FUNCTION_SUM:
275       jj_consume_token(FUNCTION_SUM);
276                                       code = Compiler.FUNCTION_SUM;
277       break;
278     case FUNCTION_FLOOR:
279       jj_consume_token(FUNCTION_FLOOR);
280                                       code = Compiler.FUNCTION_FLOOR;
281       break;
282     case FUNCTION_CEILING:
283       jj_consume_token(FUNCTION_CEILING);
284                                       code = Compiler.FUNCTION_CEILING;
285       break;
286     case FUNCTION_ROUND:
287       jj_consume_token(FUNCTION_ROUND);
288                                       code = Compiler.FUNCTION_ROUND;
289       break;
290     case FUNCTION_KEY:
291       jj_consume_token(FUNCTION_KEY);
292                                       code = Compiler.FUNCTION_KEY;
293       break;
294     case FUNCTION_FORMAT_NUMBER:
295       jj_consume_token(FUNCTION_FORMAT_NUMBER);
296                                       code = Compiler.FUNCTION_FORMAT_NUMBER;
297       break;
298     default:
299       jj_la1[2] = jj_gen;
300       jj_consume_token(-1);
301       throw new ParseException();
302     }
303         {if (true) return code;}
304     throw new Error("Missing return statement in function");
305   }
306
307   final public Object QName() throws ParseException {
308  String nc1, nc2 = null;
309     nc1 = NCName();
310     switch (jj_nt.kind) {
311     case 79:
312       jj_consume_token(79);
313       nc2 = NCName();
314       break;
315     default:
316       jj_la1[3] = jj_gen;
317       ;
318     }
319         if (nc2 == null){
320             {if (true) return compiler.qname(null, nc1);}
321         }
322         else {
323             {if (true) return compiler.qname(nc1, nc2);}
324         }
325     throw new Error("Missing return statement in function");
326   }
327
328   final public Object QName_Without_CoreFunctions() throws ParseException {
329     String nc1, nc2 = null;
330     if (jj_2_1(2147483647)) {
331       nc1 = NCName();
332       jj_consume_token(79);
333       nc2 = NCName();
334     } else {
335       switch (jj_nt.kind) {
336       case OR:
337       case AND:
338       case MOD:
339       case DIV:
340       case NCName:
341         nc1 = NCName_Without_CoreFunctions();
342         break;
343       default:
344         jj_la1[4] = jj_gen;
345         jj_consume_token(-1);
346         throw new ParseException();
347       }
348     }
349         if (nc2 == null){
350             {if (true) return compiler.qname(null, nc1);}
351         }
352         else {
353             {if (true) return compiler.qname(nc1, nc2);}
354         }
355     throw new Error("Missing return statement in function");
356   }
357
358   final public Object parseExpression() throws ParseException {
359     Object ex;
360     ex = Expression();
361     jj_consume_token(0);
362         {if (true) return ex;}
363     throw new Error("Missing return statement in function");
364   }
365
366 /* ################################################################################### */
367 /* XSLT Patterns (http://www.w3.org/1999/08/WD-xslt-19990813) */
368 /* ################################################################################### */
369
370 /* [XSLT1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern */
371
372 //void Pattern() :
373
//{}
374
//{
375
// LocationPathPattern() ( <UNION> LocationPathPattern() )* <EOF>
376
//}
377
//
378
//
379
///* [XSLT2] LocationPathPattern ::=
380
// '/' RelativePathPattern? | IdKeyPattern (('/' | '//' RelativePathPattern)? | '//'? RelativePathPattern
381
//*/
382
//
383
//void LocationPathPattern() :
384
//{}
385
//{
386
// <SLASH> ( RelativePathPattern() )?
387
// | (
388
// LOOKAHEAD(IdKeyPattern())
389
// IdKeyPattern() ( ( <SLASH> | <SLASHSLASH>) RelativePathPattern() )?
390
// | ( <SLASHSLASH> )? RelativePathPattern()
391
// )
392
//}
393
//
394
//
395
//
396
///* [XSLT3] IdKeyPattern ::= 'id' '(' Literal ')' | 'key' '(' Literal ',' Literal ')' */
397
//
398
//void IdKeyPattern() :
399
//{}
400
//{
401
// <ID> "(" <Literal> ")"
402
// | <KEY> "(" <Literal> "," <Literal> ")"
403
//}
404
//
405
//
406
///* [XSLT4] RelativePathPattern ::= StepPattern | RelativePathPattern '/' StepPattern
407
// | RelativePathPattern '//' StepPattern
408
//*/
409
//void RelativePathPattern() :
410
//{}
411
//{
412
// StepPattern() ( ( <SLASH>| <SLASHSLASH> ) StepPattern() )*
413
//}
414
//
415
//
416
///* [XSLT5] StepPattern ::= AbbreviatedAxisSpecifier NodeTest Predicate* */
417
//void StepPattern() :
418
//{}
419
//{
420
// AbbreviatedAxisSpecifier() NodeTest() (Predicate())*
421
//}
422

423
424
425 // See XPath Syntax (http://www.w3.org/TR/xpath )
426

427
428 //void XPath() :
429
//{}
430
//{
431
// LocationPath()
432
// <EOF>
433
//}
434

435
436 /* [1] LocationPath ::= RelativeLocationPath | AbsoluteLocationPath */
437   final public Object LocationPath() throws ParseException {
438  Object ex = null;
439     switch (jj_nt.kind) {
440     case OR:
441     case AND:
442     case MOD:
443     case DIV:
444     case NODE:
445     case TEXT:
446     case COMMENT:
447     case PI:
448     case AXIS_SELF:
449     case AXIS_CHILD:
450     case AXIS_PARENT:
451     case AXIS_ANCESTOR:
452     case AXIS_ATTRIBUTE:
453     case AXIS_NAMESPACE:
454     case AXIS_PRECEDING:
455     case AXIS_FOLLOWING:
456     case AXIS_DESCENDANT:
457     case AXIS_ANCESTOR_OR_SELF:
458     case AXIS_FOLLOWING_SIBLING:
459     case AXIS_PRECEDING_SIBLING:
460     case AXIS_DESCENDANT_OR_SELF:
461     case FUNCTION_LAST:
462     case FUNCTION_POSITION:
463     case FUNCTION_COUNT:
464     case FUNCTION_ID:
465     case FUNCTION_KEY:
466     case FUNCTION_LOCAL_NAME:
467     case FUNCTION_NAMESPACE_URI:
468     case FUNCTION_NAME:
469     case FUNCTION_STRING:
470     case FUNCTION_CONCAT:
471     case FUNCTION_STARTS_WITH:
472     case FUNCTION_CONTAINS:
473     case FUNCTION_SUBSTRING_BEFORE:
474     case FUNCTION_SUBSTRING_AFTER:
475     case FUNCTION_SUBSTRING:
476     case FUNCTION_STRING_LENGTH:
477     case FUNCTION_NORMALIZE_SPACE:
478     case FUNCTION_TRANSLATE:
479     case FUNCTION_BOOLEAN:
480     case FUNCTION_NOT:
481     case FUNCTION_TRUE:
482     case FUNCTION_FALSE:
483     case FUNCTION_NULL:
484     case FUNCTION_LANG:
485     case FUNCTION_NUMBER:
486     case FUNCTION_SUM:
487     case FUNCTION_FLOOR:
488     case FUNCTION_CEILING:
489     case FUNCTION_ROUND:
490     case FUNCTION_FORMAT_NUMBER:
491     case NCName:
492     case 82:
493     case 83:
494     case 86:
495     case 88:
496       ex = RelativeLocationPath();
497       break;
498     case SLASH:
499     case SLASHSLASH:
500       ex = AbsoluteLocationPath();
501       break;
502     default:
503       jj_la1[5] = jj_gen;
504       jj_consume_token(-1);
505       throw new ParseException();
506     }
507         {if (true) return ex;}
508     throw new Error("Missing return statement in function");
509   }
510
511 /* [2] AbsoluteLocationPath ::= '/' RelativeLocationPath? | AbbreviatedAbsoluteLocationPath */
512 /* [10] AbbreviatedAbsoluteLocationPath ::= '//' RelativeLocationPath */
513   final public Object AbsoluteLocationPath() throws ParseException {
514     ArrayList steps = new ArrayList();
515     if (jj_2_2(2147483647)) {
516       LocationStep(steps);
517       label_1:
518       while (true) {
519         switch (jj_nt.kind) {
520         case SLASH:
521         case SLASHSLASH:
522           ;
523           break;
524         default:
525           jj_la1[6] = jj_gen;
526           break label_1;
527         }
528         LocationStep(steps);
529       }
530     } else {
531       switch (jj_nt.kind) {
532       case SLASH:
533         jj_consume_token(SLASH);
534         break;
535       default:
536         jj_la1[7] = jj_gen;
537         jj_consume_token(-1);
538         throw new ParseException();
539       }
540     }
541         {if (true) return compiler.locationPath(true, steps.toArray());}
542     throw new Error("Missing return statement in function");
543   }
544
545 /* [3] RelativeLocationPath ::= Step | RelativeLocationPath '/' Step | AbbreviatedRelativeLocationPath */
546   final public Object RelativeLocationPath() throws ParseException {
547     ArrayList steps = new ArrayList();
548     NodeTest(steps);
549     label_2:
550     while (true) {
551       switch (jj_nt.kind) {
552       case SLASH:
553       case SLASHSLASH:
554         ;
555         break;
556       default:
557         jj_la1[8] = jj_gen;
558         break label_2;
559       }
560       LocationStep(steps);
561     }
562         {if (true) return compiler.locationPath(false, steps.toArray());}
563     throw new Error("Missing return statement in function");
564   }
565
566 /* [3] RelativeLocationPath ::= Step | RelativeLocationPath '/' Step | AbbreviatedRelativeLocationPath */
567 /* [11] AbbreviatedRelativeLocationPath ::= RelativeLocationPath '//' Step */
568
569
570 /*--------------------*/
571 /* 2.1 Location Steps */
572 /*--------------------*/
573
574 /* [4] Step ::= AxisSpecifier NodeTest Predicate* | AbbreviatedStep */
575   final public void LocationStep(ArrayList steps) throws ParseException {
576     Object t;
577     Object s;
578     switch (jj_nt.kind) {
579     case SLASH:
580       jj_consume_token(SLASH);
581       break;
582     case SLASHSLASH:
583       jj_consume_token(SLASHSLASH);
584             // Abbreviated step: descendant-or-self::node()
585
t = compiler.nodeTypeTest(Compiler.NODE_TYPE_NODE);
586             steps.add(compiler.step(Compiler.AXIS_DESCENDANT_OR_SELF, t, null));
587       break;
588     default:
589       jj_la1[9] = jj_gen;
590       jj_consume_token(-1);
591       throw new ParseException();
592     }
593     NodeTest(steps);
594   }
595
596 /* [7] NodeTest ::= WildcardName | NodeType '(' ')' | 'processing-instruction' '(' Literal ')' */
597   final public void NodeTest(ArrayList steps) throws ParseException {
598     int axis;
599     int type = -1;
600     String instruction = null;
601     Object name = null;
602     Object s;
603     Object p;
604     ArrayList ps = new ArrayList();
605     switch (jj_nt.kind) {
606     case OR:
607     case AND:
608     case MOD:
609     case DIV:
610     case NODE:
611     case TEXT:
612     case COMMENT:
613     case PI:
614     case AXIS_SELF:
615     case AXIS_CHILD:
616     case AXIS_PARENT:
617     case AXIS_ANCESTOR:
618     case AXIS_ATTRIBUTE:
619     case AXIS_NAMESPACE:
620     case AXIS_PRECEDING:
621     case AXIS_FOLLOWING:
622     case AXIS_DESCENDANT:
623     case AXIS_ANCESTOR_OR_SELF:
624     case AXIS_FOLLOWING_SIBLING:
625     case AXIS_PRECEDING_SIBLING:
626     case AXIS_DESCENDANT_OR_SELF:
627     case FUNCTION_LAST:
628     case FUNCTION_POSITION:
629     case FUNCTION_COUNT:
630     case FUNCTION_ID:
631     case FUNCTION_KEY:
632     case FUNCTION_LOCAL_NAME:
633     case FUNCTION_NAMESPACE_URI:
634     case FUNCTION_NAME:
635     case FUNCTION_STRING:
636     case FUNCTION_CONCAT:
637     case FUNCTION_STARTS_WITH:
638     case FUNCTION_CONTAINS:
639     case FUNCTION_SUBSTRING_BEFORE:
640     case FUNCTION_SUBSTRING_AFTER:
641     case FUNCTION_SUBSTRING:
642     case FUNCTION_STRING_LENGTH:
643     case FUNCTION_NORMALIZE_SPACE:
644     case FUNCTION_TRANSLATE:
645     case FUNCTION_BOOLEAN:
646     case FUNCTION_NOT:
647     case FUNCTION_TRUE:
648     case FUNCTION_FALSE:
649     case FUNCTION_NULL:
650     case FUNCTION_LANG:
651     case FUNCTION_NUMBER:
652     case FUNCTION_SUM:
653     case FUNCTION_FLOOR:
654     case FUNCTION_CEILING:
655     case FUNCTION_ROUND:
656     case FUNCTION_FORMAT_NUMBER:
657     case NCName:
658     case 86:
659     case 88:
660       axis = AxisSpecifier();
661       if (jj_2_3(2147483647)) {
662         type = NodeType();
663         jj_consume_token(80);
664         jj_consume_token(81);
665       } else if (jj_2_4(2147483647)) {
666         jj_consume_token(PI);
667         jj_consume_token(80);
668         jj_consume_token(Literal);
669                     instruction = unescape(token.image.substring(1, token.image.length() - 1));
670         jj_consume_token(81);
671       } else {
672         switch (jj_nt.kind) {
673         case OR:
674         case AND:
675         case MOD:
676         case DIV:
677         case NODE:
678         case TEXT:
679         case COMMENT:
680         case PI:
681         case FUNCTION_LAST:
682         case FUNCTION_POSITION:
683         case FUNCTION_COUNT:
684         case FUNCTION_ID:
685         case FUNCTION_KEY:
686         case FUNCTION_LOCAL_NAME:
687         case FUNCTION_NAMESPACE_URI:
688         case FUNCTION_NAME:
689         case FUNCTION_STRING:
690         case FUNCTION_CONCAT:
691         case FUNCTION_STARTS_WITH:
692         case FUNCTION_CONTAINS:
693         case FUNCTION_SUBSTRING_BEFORE:
694         case FUNCTION_SUBSTRING_AFTER:
695         case FUNCTION_SUBSTRING:
696         case FUNCTION_STRING_LENGTH:
697         case FUNCTION_NORMALIZE_SPACE:
698         case FUNCTION_TRANSLATE:
699         case FUNCTION_BOOLEAN:
700         case FUNCTION_NOT:
701         case FUNCTION_TRUE:
702         case FUNCTION_FALSE:
703         case FUNCTION_NULL:
704         case FUNCTION_LANG:
705         case FUNCTION_NUMBER:
706         case FUNCTION_SUM:
707         case FUNCTION_FLOOR:
708         case FUNCTION_CEILING:
709         case FUNCTION_ROUND:
710         case FUNCTION_FORMAT_NUMBER:
711         case NCName:
712         case 88:
713           name = WildcardName();
714           break;
715         default:
716           jj_la1[10] = jj_gen;
717           jj_consume_token(-1);
718           throw new ParseException();
719         }
720       }
721       break;
722     case 82:
723       jj_consume_token(82);
724                     axis = Compiler.AXIS_SELF;
725                     type = Compiler.NODE_TYPE_NODE;
726       break;
727     case 83:
728       jj_consume_token(83);
729                     axis = Compiler.AXIS_PARENT;
730                     type = Compiler.NODE_TYPE_NODE;
731       break;
732     default:
733       jj_la1[11] = jj_gen;
734       jj_consume_token(-1);
735       throw new ParseException();
736     }
737     label_3:
738     while (true) {
739       switch (jj_nt.kind) {
740       case 84:
741         ;
742         break;
743       default:
744         jj_la1[12] = jj_gen;
745         break label_3;
746       }
747       p = Predicate();
748                 ps.add(p);
749     }
750         if (name != null){
751             s = compiler.nodeNameTest(name);
752         }
753         else if (instruction != null){
754             s = compiler.processingInstructionTest(instruction);
755         }
756         else {
757             s = compiler.nodeTypeTest(type);
758         }
759         steps.add(compiler.step(axis, s, ps.toArray()));
760   }
761
762 /* [5] AxisSpecifier ::= AxisName '::' | AbbreviatedAxisSpecifier */
763   final public int AxisSpecifier() throws ParseException {
764     int axis;
765     switch (jj_nt.kind) {
766     case AXIS_SELF:
767     case AXIS_CHILD:
768     case AXIS_PARENT:
769     case AXIS_ANCESTOR:
770     case AXIS_ATTRIBUTE:
771     case AXIS_NAMESPACE:
772     case AXIS_PRECEDING:
773     case AXIS_FOLLOWING:
774     case AXIS_DESCENDANT:
775     case AXIS_ANCESTOR_OR_SELF:
776     case AXIS_FOLLOWING_SIBLING:
777     case AXIS_PRECEDING_SIBLING:
778     case AXIS_DESCENDANT_OR_SELF:
779       axis = AxisName();
780       break;
781     default:
782       jj_la1[13] = jj_gen;
783       axis = AbbreviatedAxisSpecifier();
784     }
785         {if (true) return axis;}
786     throw new Error("Missing return statement in function");
787   }
788
789 /*----------*/
790 /* 2.2 Axes */
791 /*----------*/
792
793 /* [6] AxisName ::= 'ancestor' | 'ancestor-or-self' | 'attribute' | 'child' | 'descendant'
794                     | 'descendant-or-self' | 'following' | 'following-sibling' | 'namespace'
795                        | 'parent' | 'preceding' | 'preceding-sibling' | 'self'
796 */

797   final public int AxisName() throws ParseException {
798     int axis = 0;
799     switch (jj_nt.kind) {
800     case AXIS_SELF:
801       jj_consume_token(AXIS_SELF);
802                                           axis = Compiler.AXIS_SELF;
803       break;
804     case AXIS_CHILD:
805       jj_consume_token(AXIS_CHILD);
806                                           axis = Compiler.AXIS_CHILD;
807       break;
808     case AXIS_PARENT:
809       jj_consume_token(AXIS_PARENT);
810                                           axis = Compiler.AXIS_PARENT;
811       break;
812     case AXIS_ANCESTOR:
813       jj_consume_token(AXIS_ANCESTOR);
814                                           axis = Compiler.AXIS_ANCESTOR;
815       break;
816     case AXIS_ATTRIBUTE:
817       jj_consume_token(AXIS_ATTRIBUTE);
818                                           axis = Compiler.AXIS_ATTRIBUTE;
819       break;
820     case AXIS_NAMESPACE:
821       jj_consume_token(AXIS_NAMESPACE);
822                                           axis = Compiler.AXIS_NAMESPACE;
823       break;
824     case AXIS_PRECEDING:
825       jj_consume_token(AXIS_PRECEDING);
826                                           axis = Compiler.AXIS_PRECEDING;
827       break;
828     case AXIS_FOLLOWING:
829       jj_consume_token(AXIS_FOLLOWING);
830                                           axis = Compiler.AXIS_FOLLOWING;
831       break;
832     case AXIS_DESCENDANT:
833       jj_consume_token(AXIS_DESCENDANT);
834                                           axis = Compiler.AXIS_DESCENDANT;
835       break;
836     case AXIS_ANCESTOR_OR_SELF:
837       jj_consume_token(AXIS_ANCESTOR_OR_SELF);
838                                           axis = Compiler.AXIS_ANCESTOR_OR_SELF;
839       break;
840     case AXIS_FOLLOWING_SIBLING:
841       jj_consume_token(AXIS_FOLLOWING_SIBLING);
842                                           axis = Compiler.AXIS_FOLLOWING_SIBLING;
843       break;
844     case AXIS_PRECEDING_SIBLING:
845       jj_consume_token(AXIS_PRECEDING_SIBLING);
846                                           axis = Compiler.AXIS_PRECEDING_SIBLING;
847       break;
848     case AXIS_DESCENDANT_OR_SELF:
849       jj_consume_token(AXIS_DESCENDANT_OR_SELF);
850                                           axis = Compiler.AXIS_DESCENDANT_OR_SELF;
851       break;
852     default:
853       jj_la1[14] = jj_gen;
854       jj_consume_token(-1);
855       throw new ParseException();
856     }
857         {if (true) return axis;}
858     throw new Error("Missing return statement in function");
859   }
860
861 /*----------------*/
862 /* 2.3 Node Tests */
863 /*----------------*/
864
865 /*----------------*/
866 /* 2.4 Predicates */
867 /*----------------*/
868
869 /* [8] Predicate ::= '[' PredicateExpr ']' */
870 /* [9] PredicateExpr ::= Expr */
871   final public Object Predicate() throws ParseException {
872     Object ex;
873     jj_consume_token(84);
874     ex = Expression();
875     jj_consume_token(85);
876         {if (true) return ex;}
877     throw new Error("Missing return statement in function");
878   }
879
880 /* [12] AbbreviatedStep ::= '.' | '..' */
881
882 /* [13] AbbreviatedAxisSpecifier ::= '@'? */
883   final public int AbbreviatedAxisSpecifier() throws ParseException {
884     int axis = Compiler.AXIS_CHILD;
885     switch (jj_nt.kind) {
886     case 86:
887       jj_consume_token(86);
888            axis = Compiler.AXIS_ATTRIBUTE;
889       break;
890     default:
891       jj_la1[15] = jj_gen;
892       ;
893     }
894         {if (true) return axis;}
895     throw new Error("Missing return statement in function");
896   }
897
898 /*---------------*/
899 /* 3 Expressions */
900 /*---------------*/
901
902 /*------------*/
903 /* 3.1 Basics */
904 /*------------*/
905
906 /*
907 The effect of the grammar is that the order of precedence is (lowest precedence first):
908     or
909     and
910     =, !=
911     <=, <, >=, >
912 and all operators are left associative.
913 For example, 3 > 2 > 1 is equivalent to (3 > 2) > 1, which evaluates to false.
914 */

915
916 /* [14] Expr ::= OrExpr */
917   final public Object Expression() throws ParseException {
918  Object ex;
919     ex = OrExpr();
920         {if (true) return ex;}
921     throw new Error("Missing return statement in function");
922   }
923
924 /* [15] PrimaryExpr ::= VariableReference | '(' Expr ')' | Literal | Number | FunctionCall */
925   final public Object PrimaryExpr() throws ParseException {
926     Object ex = null;
927     switch (jj_nt.kind) {
928     case VARIABLE:
929       ex = VariableReference();
930       break;
931     case 80:
932       jj_consume_token(80);
933       ex = Expression();
934       jj_consume_token(81);
935       break;
936     case Literal:
937       jj_consume_token(Literal);
938                       ex = compiler.literal(unescape(token.image.substring(1, token.image.length() - 1)));
939       break;
940     case Number:
941       jj_consume_token(Number);
942                       ex = compiler.number(token.image);
943       break;
944     default:
945       jj_la1[16] = jj_gen;
946       if (jj_2_5(2147483647)) {
947         ex = CoreFunctionCall();
948       } else {
949         switch (jj_nt.kind) {
950         case OR:
951         case AND:
952         case MOD:
953         case DIV:
954         case NODE:
955         case TEXT:
956         case COMMENT:
957         case PI:
958         case FUNCTION_LAST:
959         case FUNCTION_POSITION:
960         case FUNCTION_COUNT:
961         case FUNCTION_ID:
962         case FUNCTION_KEY:
963         case FUNCTION_LOCAL_NAME:
964         case FUNCTION_NAMESPACE_URI:
965         case FUNCTION_NAME:
966         case FUNCTION_STRING:
967         case FUNCTION_CONCAT:
968         case FUNCTION_STARTS_WITH:
969         case FUNCTION_CONTAINS:
970         case FUNCTION_SUBSTRING_BEFORE:
971         case FUNCTION_SUBSTRING_AFTER:
972         case FUNCTION_SUBSTRING:
973         case FUNCTION_STRING_LENGTH:
974         case FUNCTION_NORMALIZE_SPACE:
975         case FUNCTION_TRANSLATE:
976         case FUNCTION_BOOLEAN:
977         case FUNCTION_NOT:
978         case FUNCTION_TRUE:
979         case FUNCTION_FALSE:
980         case FUNCTION_NULL:
981         case FUNCTION_LANG:
982         case FUNCTION_NUMBER:
983         case FUNCTION_SUM:
984         case FUNCTION_FLOOR:
985         case FUNCTION_CEILING:
986         case FUNCTION_ROUND:
987         case FUNCTION_FORMAT_NUMBER:
988         case NCName:
989           ex = FunctionCall();
990           break;
991         default:
992           jj_la1[17] = jj_gen;
993           jj_consume_token(-1);
994           throw new ParseException();
995         }
996       }
997     }
998         {if (true) return ex;}
999     throw new Error("Missing return statement in function");
1000  }
1001
1002/*--------------------*/
1003/* 3.2 Function Calls */
1004/*--------------------*/
1005
1006/* [16] FunctionCall ::= FunctionName '(' ( Argument ( ',' Argument)*)? ')' */
1007  final public Object FunctionCall() throws ParseException {
1008    Object name;
1009    ArrayList args;
1010    name = FunctionName();
1011    args = ArgumentList();
1012        if (args == null){
1013            {if (true) return compiler.function(name, null);}
1014        }
1015        else {
1016            {if (true) return compiler.function(name, args.toArray());}
1017        }
1018    throw new Error("Missing return statement in function");
1019  }
1020
1021  final public Object CoreFunctionCall() throws ParseException {
1022    int code = 0;
1023    ArrayList args;
1024    code = CoreFunctionName();
1025    args = ArgumentList();
1026        if (args == null){
1027            {if (true) return compiler.function(code, null);}
1028        }
1029        else {
1030            {if (true) return compiler.function(code, args.toArray());}
1031        }
1032    throw new Error("Missing return statement in function");
1033  }
1034
1035  final public ArrayList ArgumentList() throws ParseException {
1036    ArrayList args = null;
1037    Object arg;
1038    jj_consume_token(80);
1039    switch (jj_nt.kind) {
1040    case SLASH:
1041    case SLASHSLASH:
1042    case MINUS:
1043    case VARIABLE:
1044    case Literal:
1045    case Number:
1046    case OR:
1047    case AND:
1048    case MOD:
1049    case DIV:
1050    case NODE:
1051    case TEXT:
1052    case COMMENT:
1053    case PI:
1054    case AXIS_SELF:
1055    case AXIS_CHILD:
1056    case AXIS_PARENT:
1057    case AXIS_ANCESTOR:
1058    case AXIS_ATTRIBUTE:
1059    case AXIS_NAMESPACE:
1060    case AXIS_PRECEDING:
1061    case AXIS_FOLLOWING:
1062    case AXIS_DESCENDANT:
1063    case AXIS_ANCESTOR_OR_SELF:
1064    case AXIS_FOLLOWING_SIBLING:
1065    case AXIS_PRECEDING_SIBLING:
1066    case AXIS_DESCENDANT_OR_SELF:
1067    case FUNCTION_LAST:
1068    case FUNCTION_POSITION:
1069    case FUNCTION_COUNT:
1070    case FUNCTION_ID:
1071    case FUNCTION_KEY:
1072    case FUNCTION_LOCAL_NAME:
1073    case FUNCTION_NAMESPACE_URI:
1074    case FUNCTION_NAME:
1075    case FUNCTION_STRING:
1076    case FUNCTION_CONCAT:
1077    case FUNCTION_STARTS_WITH:
1078    case FUNCTION_CONTAINS:
1079    case FUNCTION_SUBSTRING_BEFORE:
1080    case FUNCTION_SUBSTRING_AFTER:
1081    case FUNCTION_SUBSTRING:
1082    case FUNCTION_STRING_LENGTH:
1083    case FUNCTION_NORMALIZE_SPACE:
1084    case FUNCTION_TRANSLATE:
1085    case FUNCTION_BOOLEAN:
1086    case FUNCTION_NOT:
1087    case FUNCTION_TRUE:
1088    case FUNCTION_FALSE:
1089    case FUNCTION_NULL:
1090    case FUNCTION_LANG:
1091    case FUNCTION_NUMBER:
1092    case FUNCTION_SUM:
1093    case FUNCTION_FLOOR:
1094    case FUNCTION_CEILING:
1095    case FUNCTION_ROUND:
1096    case FUNCTION_FORMAT_NUMBER:
1097    case NCName:
1098    case 80:
1099    case 82:
1100    case 83:
1101    case 86:
1102    case 88:
1103      arg = Argument();
1104                                args = new ArrayList(); args.add(arg);
1105      label_4:
1106      while (true) {
1107        switch (jj_nt.kind) {
1108        case 87:
1109          ;
1110          break;
1111        default:
1112          jj_la1[18] = jj_gen;
1113          break label_4;
1114        }
1115        jj_consume_token(87);
1116        arg = Argument();
1117                                       args.add(arg);
1118      }
1119      break;
1120    default:
1121      jj_la1[19] = jj_gen;
1122      ;
1123    }
1124    jj_consume_token(81);
1125        {if (true) return args;}
1126    throw new Error("Missing return statement in function");
1127  }
1128
1129/* [17] Argument ::= Expr */
1130  final public Object Argument() throws ParseException {
1131    Object ex;
1132    ex = Expression();
1133        {if (true) return ex;}
1134    throw new Error("Missing return statement in function");
1135  }
1136
1137/*---------------*/
1138/* 3.3 Node-sets */
1139/*---------------*/
1140
1141/* [18] UnionExpr ::= PathExpr | UnionExpr '|' PathExpr */
1142  final public Object UnionExpr() throws ParseException {
1143    Object ex, r;
1144    ArrayList list = null;
1145    ex = PathExpr();
1146    label_5:
1147    while (true) {
1148      switch (jj_nt.kind) {
1149      case UNION:
1150        ;
1151        break;
1152      default:
1153        jj_la1[20] = jj_gen;
1154        break label_5;
1155      }
1156      jj_consume_token(UNION);
1157      r = PathExpr();
1158                if (list == null){
1159                    list = new ArrayList();
1160                    list.add(ex);
1161                }
1162                list.add(r);
1163    }
1164        if (list != null){
1165            ex = compiler.union(list.toArray());
1166        }
1167        {if (true) return ex;}
1168    throw new Error("Missing return statement in function");
1169  }
1170
1171/* [19] PathExpr ::= LocationPath | FilterExpr | FilterExpr '/' RelativeLocationPath | FilterExpr '//' RelativeLocationPath */
1172  final public Object PathExpr() throws ParseException {
1173    Object ex = null;
1174    Object[] steps;
1175    if (jj_2_6(2147483647)) {
1176      ex = FilterExpr();
1177    } else {
1178      switch (jj_nt.kind) {
1179      case SLASH:
1180      case SLASHSLASH:
1181      case OR:
1182      case AND:
1183      case MOD:
1184      case DIV:
1185      case NODE:
1186      case TEXT:
1187      case COMMENT:
1188      case PI:
1189      case AXIS_SELF:
1190      case AXIS_CHILD:
1191      case AXIS_PARENT:
1192      case AXIS_ANCESTOR:
1193      case AXIS_ATTRIBUTE:
1194      case AXIS_NAMESPACE:
1195      case AXIS_PRECEDING:
1196      case AXIS_FOLLOWING:
1197      case AXIS_DESCENDANT:
1198      case AXIS_ANCESTOR_OR_SELF:
1199      case AXIS_FOLLOWING_SIBLING:
1200      case AXIS_PRECEDING_SIBLING:
1201      case AXIS_DESCENDANT_OR_SELF:
1202      case FUNCTION_LAST:
1203      case FUNCTION_POSITION:
1204      case FUNCTION_COUNT:
1205      case FUNCTION_ID:
1206      case FUNCTION_KEY:
1207      case FUNCTION_LOCAL_NAME:
1208      case FUNCTION_NAMESPACE_URI:
1209      case FUNCTION_NAME:
1210      case FUNCTION_STRING:
1211      case FUNCTION_CONCAT:
1212      case FUNCTION_STARTS_WITH:
1213      case FUNCTION_CONTAINS:
1214      case FUNCTION_SUBSTRING_BEFORE:
1215      case FUNCTION_SUBSTRING_AFTER:
1216      case FUNCTION_SUBSTRING:
1217      case FUNCTION_STRING_LENGTH:
1218      case FUNCTION_NORMALIZE_SPACE:
1219      case FUNCTION_TRANSLATE:
1220      case FUNCTION_BOOLEAN:
1221      case FUNCTION_NOT:
1222      case FUNCTION_TRUE:
1223      case FUNCTION_FALSE:
1224      case FUNCTION_NULL:
1225      case FUNCTION_LANG:
1226      case FUNCTION_NUMBER:
1227      case FUNCTION_SUM:
1228      case FUNCTION_FLOOR:
1229      case FUNCTION_CEILING:
1230      case FUNCTION_ROUND:
1231      case FUNCTION_FORMAT_NUMBER:
1232      case NCName:
1233      case 82:
1234      case 83:
1235      case 86:
1236      case 88:
1237        ex = LocationPath();
1238        break;
1239      default:
1240        jj_la1[21] = jj_gen;
1241        jj_consume_token(-1);
1242        throw new ParseException();
1243      }
1244    }
1245        {if (true) return ex;}
1246    throw new Error("Missing return statement in function");
1247  }
1248
1249/* [20] FilterExpr ::= PrimaryExpr | FilterExpr Predicate */
1250  final public Object FilterExpr() throws ParseException {
1251    Object ex, p;
1252    ArrayList ps = new ArrayList();
1253    boolean path = false;
1254    ArrayList steps = new ArrayList();
1255    ex = PrimaryExpr();
1256    label_6:
1257    while (true) {
1258      switch (jj_nt.kind) {
1259      case 84:
1260        ;
1261        break;
1262      default:
1263        jj_la1[22] = jj_gen;
1264        break label_6;
1265      }
1266      p = Predicate();
1267                path = true;
1268                ps.add(p);
1269    }
1270    label_7:
1271    while (true) {
1272      switch (jj_nt.kind) {
1273      case SLASH:
1274      case SLASHSLASH:
1275        ;
1276        break;
1277      default:
1278        jj_la1[23] = jj_gen;
1279        break label_7;
1280      }
1281      LocationStep(steps);
1282                path = true;
1283    }
1284        if (path){
1285            {if (true) return compiler.expressionPath(ex, ps.toArray(), steps.toArray());}
1286        }
1287        else {
1288            {if (true) return ex;}
1289        }
1290    throw new Error("Missing return statement in function");
1291  }
1292
1293/*--------------*/
1294/* 3.4 Booleans */
1295/*--------------*/
1296
1297/* [21] OrExpr ::= AndExpr | OrExpr 'or' AndExpr */
1298  final public Object OrExpr() throws ParseException {
1299    Object ex, r;
1300    ArrayList list = null;
1301    ex = AndExpr();
1302    label_8:
1303    while (true) {
1304      switch (jj_nt.kind) {
1305      case OR:
1306        ;
1307        break;
1308      default:
1309        jj_la1[24] = jj_gen;
1310        break label_8;
1311      }
1312      jj_consume_token(OR);
1313      r = AndExpr();
1314                if (list == null){
1315                    list = new ArrayList();
1316                    list.add(ex);
1317                }
1318                list.add(r);
1319    }
1320        if (list != null){
1321            ex = compiler.or(list.toArray());
1322        }
1323        {if (true) return ex;}
1324    throw new Error("Missing return statement in function");
1325  }
1326
1327/* [22] AndExpr ::= EqualityExpr | AndExpr 'and' EqualityExpr */
1328  final public Object AndExpr() throws ParseException {
1329    Object ex, r;
1330    ArrayList list = null;
1331    ex = EqualityExpr();
1332    label_9:
1333    while (true) {
1334      switch (jj_nt.kind) {
1335      case AND:
1336        ;
1337        break;
1338      default:
1339        jj_la1[25] = jj_gen;
1340        break label_9;
1341      }
1342      jj_consume_token(AND);
1343      r = EqualityExpr();
1344                if (list == null){
1345                    list = new ArrayList();
1346                    list.add(ex);
1347                }
1348                list.add(r);
1349    }
1350        if (list != null){
1351            ex = compiler.and(list.toArray());
1352        }
1353        {if (true) return ex;}
1354    throw new Error("Missing return statement in function");
1355  }
1356
1357/* [23] EqualityExpr ::= RelationalExpr | EqualityExpr '=' RelationalExpr | EqualityExpr '!=' RelationalExpr */
1358  final public Object EqualityExpr() throws ParseException {
1359 Object ex, r;
1360    ex = RelationalExpr();
1361    label_10:
1362    while (true) {
1363      switch (jj_nt.kind) {
1364      case EQ:
1365      case NEQ:
1366        ;
1367        break;
1368      default:
1369        jj_la1[26] = jj_gen;
1370        break label_10;
1371      }
1372      switch (jj_nt.kind) {
1373      case EQ:
1374        jj_consume_token(EQ);
1375        r = RelationalExpr();
1376                                          ex = compiler.equal(ex, r);
1377        break;
1378      case NEQ:
1379        jj_consume_token(NEQ);
1380        r = RelationalExpr();
1381                                          ex = compiler.notEqual(ex, r);
1382        break;
1383      default:
1384        jj_la1[27] = jj_gen;
1385        jj_consume_token(-1);
1386        throw new ParseException();
1387      }
1388    }
1389        {if (true) return ex;}
1390    throw new Error("Missing return statement in function");
1391  }
1392
1393/* [24] RelationalExpr ::= AdditiveExpr | RelationalExpr '<' AdditiveExpr | RelationalExpr '>' AdditiveExpr
1394                       | RelationalExpr '<=' AdditiveExpr | RelationalExpr '>=' AdditiveExpr */

1395  final public Object RelationalExpr() throws ParseException {
1396 Object ex, r;
1397    ex = AdditiveExpr();
1398    label_11:
1399    while (true) {
1400      switch (jj_nt.kind) {
1401      case LT:
1402      case LTE:
1403      case GT:
1404      case GTE:
1405        ;
1406        break;
1407      default:
1408        jj_la1[28] = jj_gen;
1409        break label_11;
1410      }
1411      switch (jj_nt.kind) {
1412      case LT:
1413        jj_consume_token(LT);
1414        r = AdditiveExpr();
1415                                        ex = compiler.lessThan(ex, r);
1416        break;
1417      case GT:
1418        jj_consume_token(GT);
1419        r = AdditiveExpr();
1420                                        ex = compiler.greaterThan(ex, r);
1421        break;
1422      case LTE:
1423        jj_consume_token(LTE);
1424        r = AdditiveExpr();
1425                                        ex = compiler.lessThanOrEqual(ex, r);
1426        break;
1427      case GTE:
1428        jj_consume_token(GTE);
1429        r = AdditiveExpr();
1430                                        ex = compiler.greaterThanOrEqual(ex, r);
1431        break;
1432      default:
1433        jj_la1[29] = jj_gen;
1434        jj_consume_token(-1);
1435        throw new ParseException();
1436      }
1437    }
1438        {if (true) return ex;}
1439    throw new Error("Missing return statement in function");
1440  }
1441
1442/*-------------*/
1443/* 3.5 Numbers */
1444/*-------------*/
1445
1446/* [25] AdditiveExpr ::= MultiplicativeExpr | AdditiveExpr '+' MultiplicativeExpr | AdditiveExpr '-' MultiplicativeExpr */
1447  final public Object AdditiveExpr() throws ParseException {
1448    Object ex, r;
1449    ArrayList list = null;
1450    ex = SubtractiveExpr();
1451    label_12:
1452    while (true) {
1453      switch (jj_nt.kind) {
1454      case PLUS:
1455        ;
1456        break;
1457      default:
1458        jj_la1[30] = jj_gen;
1459        break label_12;
1460      }
1461      jj_consume_token(PLUS);
1462      r = SubtractiveExpr();
1463                if (list == null){
1464                    list = new ArrayList();
1465                    list.add(ex);
1466                }
1467                list.add(r);
1468    }
1469        if (list != null){
1470            ex = compiler.sum(list.toArray());
1471        }
1472        {if (true) return ex;}
1473    throw new Error("Missing return statement in function");
1474  }
1475
1476  final public Object SubtractiveExpr() throws ParseException {
1477    Object ex, r = null;
1478    ex = MultiplicativeExpr();
1479    label_13:
1480    while (true) {
1481      switch (jj_nt.kind) {
1482      case MINUS:
1483        ;
1484        break;
1485      default:
1486        jj_la1[31] = jj_gen;
1487        break label_13;
1488      }
1489      jj_consume_token(MINUS);
1490      r = MultiplicativeExpr();
1491                                               ex = compiler.minus(ex, r);
1492    }
1493        {if (true) return ex;}
1494    throw new Error("Missing return statement in function");
1495  }
1496
1497/* [26] MultiplicativeExpr ::= UnaryExpr | MultiplicativeExpr MultiplyOperator UnaryExpr
1498            | MultiplicativeExpr 'div' UnaryExpr | MultiplicativeExpr 'mod' UnaryExpr */

1499  final public Object MultiplicativeExpr() throws ParseException {
1500    Object ex, r;
1501    ex = UnaryExpr();
1502    label_14:
1503    while (true) {
1504      switch (jj_nt.kind) {
1505      case MOD:
1506      case DIV:
1507      case 88:
1508        ;
1509        break;
1510      default:
1511        jj_la1[32] = jj_gen;
1512        break label_14;
1513      }
1514      switch (jj_nt.kind) {
1515      case 88:
1516        jj_consume_token(88);
1517        r = UnaryExpr();
1518                                    ex = compiler.multiply(ex, r);
1519        break;
1520      case DIV:
1521        jj_consume_token(DIV);
1522        r = UnaryExpr();
1523                                    ex = compiler.divide(ex, r);
1524        break;
1525      case MOD:
1526        jj_consume_token(MOD);
1527        r = UnaryExpr();
1528                                    ex = compiler.mod(ex, r);
1529        break;
1530      default:
1531        jj_la1[33] = jj_gen;
1532        jj_consume_token(-1);
1533        throw new ParseException();
1534      }
1535    }
1536        {if (true) return ex;}
1537    throw new Error("Missing return statement in function");
1538  }
1539
1540/* [27] UnaryExpr ::= UnionExpr | '-' UnaryExpr */
1541  final public Object UnaryExpr() throws ParseException {
1542    Object ex;
1543    switch (jj_nt.kind) {
1544    case SLASH:
1545    case SLASHSLASH:
1546    case VARIABLE:
1547    case Literal:
1548    case Number:
1549    case OR:
1550    case AND:
1551    case MOD:
1552    case DIV:
1553    case NODE:
1554    case TEXT:
1555    case COMMENT:
1556    case PI:
1557    case AXIS_SELF:
1558    case AXIS_CHILD:
1559    case AXIS_PARENT:
1560    case AXIS_ANCESTOR:
1561    case AXIS_ATTRIBUTE:
1562    case AXIS_NAMESPACE:
1563    case AXIS_PRECEDING:
1564    case AXIS_FOLLOWING:
1565    case AXIS_DESCENDANT:
1566    case AXIS_ANCESTOR_OR_SELF:
1567    case AXIS_FOLLOWING_SIBLING:
1568    case AXIS_PRECEDING_SIBLING:
1569    case AXIS_DESCENDANT_OR_SELF:
1570    case FUNCTION_LAST:
1571    case FUNCTION_POSITION:
1572    case FUNCTION_COUNT:
1573    case FUNCTION_ID:
1574    case FUNCTION_KEY:
1575    case FUNCTION_LOCAL_NAME:
1576    case FUNCTION_NAMESPACE_URI:
1577    case FUNCTION_NAME:
1578    case FUNCTION_STRING:
1579    case FUNCTION_CONCAT:
1580    case FUNCTION_STARTS_WITH:
1581    case FUNCTION_CONTAINS:
1582    case FUNCTION_SUBSTRING_BEFORE:
1583    case FUNCTION_SUBSTRING_AFTER:
1584    case FUNCTION_SUBSTRING:
1585    case FUNCTION_STRING_LENGTH:
1586    case FUNCTION_NORMALIZE_SPACE:
1587    case FUNCTION_TRANSLATE:
1588    case FUNCTION_BOOLEAN:
1589    case FUNCTION_NOT:
1590    case FUNCTION_TRUE:
1591    case FUNCTION_FALSE:
1592    case FUNCTION_NULL:
1593    case FUNCTION_LANG:
1594    case FUNCTION_NUMBER:
1595    case FUNCTION_SUM:
1596    case FUNCTION_FLOOR:
1597    case FUNCTION_CEILING:
1598    case FUNCTION_ROUND:
1599    case FUNCTION_FORMAT_NUMBER:
1600    case NCName:
1601    case 80:
1602    case 82:
1603    case 83:
1604    case 86:
1605    case 88:
1606      ex = UnionExpr();
1607      break;
1608    case MINUS:
1609      jj_consume_token(MINUS);
1610      ex = UnaryExpr();
1611                                    ex = compiler.minus(ex);
1612      break;
1613    default:
1614      jj_la1[34] = jj_gen;
1615      jj_consume_token(-1);
1616      throw new ParseException();
1617    }
1618        {if (true) return ex;}
1619    throw new Error("Missing return statement in function");
1620  }
1621
1622/*-------------*/
1623/* 3.6 Strings */
1624/*-------------*/
1625
1626/*----------------------------------*/
1627/* 3.7 Expression Lexical Structure */
1628/*----------------------------------*/
1629/*
1630The following special tokenization rules must be applied in the order
1631specified to disambiguate the grammar:
1632
16331. If there is a preceding token and the preceding token is not one of
1634   @, ::, (, [, , or an Operator,
1635   then a * must be recognized as a MultiplyOperator and an NCName must
1636   be recognized as an OperatorName.
1637
16382. If the character following an NCName (possibly after intervening ExprWhitespace)
1639   is (, then the token must be recognized as a NodeType or a FunctionName.
1640
16413. If the two characters following an NCName (possibly after intervening ExprWhitespace)
1642   are ::, then the token must be recognized as an AxisName.
1643
16444. Otherwise, the token must not be recognized as a MultiplyOperator, an OperatorName,
1645   a NodeType, a FunctionName, or an AxisName.
1646*/

1647
1648/*
1649[28] ExprToken ::= '(' | ')' | '[' | ']' | '.' | '..' | '@' | ',' | '::'
1650   | WildcardName | NodeType | Operator | FunctionName | AxisName | Literal
1651   | Number | VariableReference
1652*/

1653/* [34] MultiplyOperator ::= '*' */
1654
1655/* [35] FunctionName ::= QName - NodeType */
1656  final public Object FunctionName() throws ParseException {
1657    Object qname;
1658    qname = QName_Without_CoreFunctions();
1659        {if (true) return qname;}
1660    throw new Error("Missing return statement in function");
1661  }
1662
1663/* [36] VariableReference ::= '$' QName */
1664  final public Object VariableReference() throws ParseException {
1665    Object ex;
1666    jj_consume_token(VARIABLE);
1667    ex = QName();
1668        {if (true) return compiler.variableReference(ex);}
1669    throw new Error("Missing return statement in function");
1670  }
1671
1672/* [37] WildcardName ::= '*' | NCName ':' '*' | QName */
1673  final public Object WildcardName() throws ParseException {
1674    Object qn;
1675    String nc1, nc2 = null;
1676    switch (jj_nt.kind) {
1677    case 88:
1678      jj_consume_token(88);
1679      break;
1680    case OR:
1681    case AND:
1682    case MOD:
1683    case DIV:
1684    case NODE:
1685    case TEXT:
1686    case COMMENT:
1687    case PI:
1688    case FUNCTION_LAST:
1689    case FUNCTION_POSITION:
1690    case FUNCTION_COUNT:
1691    case FUNCTION_ID:
1692    case FUNCTION_KEY:
1693    case FUNCTION_LOCAL_NAME:
1694    case FUNCTION_NAMESPACE_URI:
1695    case FUNCTION_NAME:
1696    case FUNCTION_STRING:
1697    case FUNCTION_CONCAT:
1698    case FUNCTION_STARTS_WITH:
1699    case FUNCTION_CONTAINS:
1700    case FUNCTION_SUBSTRING_BEFORE:
1701    case FUNCTION_SUBSTRING_AFTER:
1702    case FUNCTION_SUBSTRING:
1703    case FUNCTION_STRING_LENGTH:
1704    case FUNCTION_NORMALIZE_SPACE:
1705    case FUNCTION_TRANSLATE:
1706    case FUNCTION_BOOLEAN:
1707    case FUNCTION_NOT:
1708    case FUNCTION_TRUE:
1709    case FUNCTION_FALSE:
1710    case FUNCTION_NULL:
1711    case FUNCTION_LANG:
1712    case FUNCTION_NUMBER:
1713    case FUNCTION_SUM:
1714    case FUNCTION_FLOOR:
1715    case FUNCTION_CEILING:
1716    case FUNCTION_ROUND:
1717    case FUNCTION_FORMAT_NUMBER:
1718    case NCName:
1719      NCName();
1720      break;
1721    default:
1722      jj_la1[35] = jj_gen;
1723      jj_consume_token(-1);
1724      throw new ParseException();
1725    }
1726                           nc1 = token.image;
1727    switch (jj_nt.kind) {
1728    case 79:
1729      jj_consume_token(79);
1730      switch (jj_nt.kind) {
1731      case 88:
1732        jj_consume_token(88);
1733        break;
1734      case OR:
1735      case AND:
1736      case MOD:
1737      case DIV:
1738      case NODE:
1739      case TEXT:
1740      case COMMENT:
1741      case PI:
1742      case FUNCTION_LAST:
1743      case FUNCTION_POSITION:
1744      case FUNCTION_COUNT:
1745      case FUNCTION_ID:
1746      case FUNCTION_KEY:
1747      case FUNCTION_LOCAL_NAME:
1748      case FUNCTION_NAMESPACE_URI:
1749      case FUNCTION_NAME:
1750      case FUNCTION_STRING:
1751      case FUNCTION_CONCAT:
1752      case FUNCTION_STARTS_WITH:
1753      case FUNCTION_CONTAINS:
1754      case FUNCTION_SUBSTRING_BEFORE:
1755      case FUNCTION_SUBSTRING_AFTER:
1756      case FUNCTION_SUBSTRING:
1757      case FUNCTION_STRING_LENGTH:
1758      case FUNCTION_NORMALIZE_SPACE:
1759      case FUNCTION_TRANSLATE:
1760      case FUNCTION_BOOLEAN:
1761      case FUNCTION_NOT:
1762      case FUNCTION_TRUE:
1763      case FUNCTION_FALSE:
1764      case FUNCTION_NULL:
1765      case FUNCTION_LANG:
1766      case FUNCTION_NUMBER:
1767      case FUNCTION_SUM:
1768      case FUNCTION_FLOOR:
1769      case FUNCTION_CEILING:
1770      case FUNCTION_ROUND:
1771      case FUNCTION_FORMAT_NUMBER:
1772      case NCName:
1773        NCName();
1774        break;
1775      default:
1776        jj_la1[36] = jj_gen;
1777        jj_consume_token(-1);
1778        throw new ParseException();
1779      }
1780                               nc2 = token.image;
1781      break;
1782    default:
1783      jj_la1[37] = jj_gen;
1784      ;
1785    }
1786        if (nc2 != null){
1787            qn = compiler.qname(nc1, nc2);
1788        }
1789        else {
1790            qn = compiler.qname(null, nc1);
1791        }
1792        {if (true) return qn;}
1793    throw new Error("Missing return statement in function");
1794  }
1795
1796/* [38] NodeType ::= 'comment' | 'text' | 'processing-instruction' | 'node' */
1797  final public int NodeType() throws ParseException {
1798    int type;
1799    switch (jj_nt.kind) {
1800    case TEXT:
1801      jj_consume_token(TEXT);
1802                      type = Compiler.NODE_TYPE_TEXT;
1803      break;
1804    case NODE:
1805      jj_consume_token(NODE);
1806                      type = Compiler.NODE_TYPE_NODE;
1807      break;
1808    case COMMENT:
1809      jj_consume_token(COMMENT);
1810                      type = Compiler.NODE_TYPE_COMMENT;
1811      break;
1812    case PI:
1813      jj_consume_token(PI);
1814                      type = Compiler.NODE_TYPE_PI;
1815      break;
1816    default:
1817      jj_la1[38] = jj_gen;
1818      jj_consume_token(-1);
1819      throw new ParseException();
1820    }
1821        {if (true) return type;}
1822    throw new Error("Missing return statement in function");
1823  }
1824
1825  final private boolean jj_2_1(int xla) {
1826    jj_la = xla; jj_lastpos = jj_scanpos = token;
1827    boolean retval = !jj_3_1();
1828    jj_save(0, xla);
1829    return retval;
1830  }
1831
1832  final private boolean jj_2_2(int xla) {
1833    jj_la = xla; jj_lastpos = jj_scanpos = token;
1834    boolean retval = !jj_3_2();
1835    jj_save(1, xla);
1836    return retval;
1837  }
1838
1839  final private boolean jj_2_3(int xla) {
1840    jj_la = xla; jj_lastpos = jj_scanpos = token;
1841    boolean retval = !jj_3_3();
1842    jj_save(2, xla);
1843    return retval;
1844  }
1845
1846  final private boolean jj_2_4(int xla) {
1847    jj_la = xla; jj_lastpos = jj_scanpos = token;
1848    boolean retval = !jj_3_4();
1849    jj_save(3, xla);
1850    return retval;
1851  }
1852
1853  final private boolean jj_2_5(int xla) {
1854    jj_la = xla; jj_lastpos = jj_scanpos = token;
1855    boolean retval = !jj_3_5();
1856    jj_save(4, xla);
1857    return retval;
1858  }
1859
1860  final private boolean jj_2_6(int xla) {
1861    jj_la = xla; jj_lastpos = jj_scanpos = token;
1862    boolean retval = !jj_3_6();
1863    jj_save(5, xla);
1864    return retval;
1865  }
1866
1867  final private boolean jj_3R_65() {
1868    if (jj_scan_token(FUNCTION_ID)) return true;
1869    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1870    return false;
1871  }
1872
1873  final private boolean jj_3R_104() {
1874    if (jj_3R_118()) return true;
1875    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1876    return false;
1877  }
1878
1879  final private boolean jj_3R_64() {
1880    if (jj_scan_token(FUNCTION_COUNT)) return true;
1881    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1882    return false;
1883  }
1884
1885  final private boolean jj_3R_63() {
1886    if (jj_scan_token(FUNCTION_POSITION)) return true;
1887    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1888    return false;
1889  }
1890
1891  final private boolean jj_3R_62() {
1892    if (jj_scan_token(FUNCTION_LAST)) return true;
1893    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1894    return false;
1895  }
1896
1897  final private boolean jj_3R_18() {
1898    Token xsp;
1899    xsp = jj_scanpos;
1900    if (jj_3R_62()) {
1901    jj_scanpos = xsp;
1902    if (jj_3R_63()) {
1903    jj_scanpos = xsp;
1904    if (jj_3R_64()) {
1905    jj_scanpos = xsp;
1906    if (jj_3R_65()) {
1907    jj_scanpos = xsp;
1908    if (jj_3R_66()) {
1909    jj_scanpos = xsp;
1910    if (jj_3R_67()) {
1911    jj_scanpos = xsp;
1912    if (jj_3R_68()) {
1913    jj_scanpos = xsp;
1914    if (jj_3R_69()) {
1915    jj_scanpos = xsp;
1916    if (jj_3R_70()) {
1917    jj_scanpos = xsp;
1918    if (jj_3R_71()) {
1919    jj_scanpos = xsp;
1920    if (jj_3R_72()) {
1921    jj_scanpos = xsp;
1922    if (jj_3R_73()) {
1923    jj_scanpos = xsp;
1924    if (jj_3R_74()) {
1925    jj_scanpos = xsp;
1926    if (jj_3R_75()) {
1927    jj_scanpos = xsp;
1928    if (jj_3R_76()) {
1929    jj_scanpos = xsp;
1930    if (jj_3R_77()) {
1931    jj_scanpos = xsp;
1932    if (jj_3R_78()) {
1933    jj_scanpos = xsp;
1934    if (jj_3R_79()) {
1935    jj_scanpos = xsp;
1936    if (jj_3R_80()) {
1937    jj_scanpos = xsp;
1938    if (jj_3R_81()) {
1939    jj_scanpos = xsp;
1940    if (jj_3R_82()) {
1941    jj_scanpos = xsp;
1942    if (jj_3R_83()) {
1943    jj_scanpos = xsp;
1944    if (jj_3R_84()) {
1945    jj_scanpos = xsp;
1946    if (jj_3R_85()) {
1947    jj_scanpos = xsp;
1948    if (jj_3R_86()) {
1949    jj_scanpos = xsp;
1950    if (jj_3R_87()) {
1951    jj_scanpos = xsp;
1952    if (jj_3R_88()) {
1953    jj_scanpos = xsp;
1954    if (jj_3R_89()) {
1955    jj_scanpos = xsp;
1956    if (jj_3R_90()) {
1957    jj_scanpos = xsp;
1958    if (jj_3R_91()) return true;
1959    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1960    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1961    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1962    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1963    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1964    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1965    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1966    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1967    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1968    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1969    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1970    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1971    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1972    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1973    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1974    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1975    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1976    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1977    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1978    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1979    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1980    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1981    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1982    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1983    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1984    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1985    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1986    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1987    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1988    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1989    return false;
1990  }
1991
1992  final private boolean jj_3R_111() {
1993    if (jj_scan_token(DIV)) return true;
1994    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1995    return false;
1996  }
1997
1998  final private boolean jj_3R_110() {
1999    if (jj_scan_token(MOD)) return true;
2000    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2001    return false;
2002  }
2003
2004  final private boolean jj_3R_109() {
2005    if (jj_scan_token(AND)) return true;
2006    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2007    return false;
2008  }
2009
2010  final private boolean jj_3R_108() {
2011    if (jj_scan_token(OR)) return true;
2012    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2013    return false;
2014  }
2015
2016  final private boolean jj_3R_107() {
2017    if (jj_scan_token(NCName)) return true;
2018    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2019    return false;
2020  }
2021
2022  final private boolean jj_3R_173() {
2023    if (jj_scan_token(MINUS)) return true;
2024    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2025    if (jj_3R_170()) return true;
2026    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2027    return false;
2028  }
2029
2030  final private boolean jj_3R_98() {
2031    Token xsp;
2032    xsp = jj_scanpos;
2033    if (jj_3R_107()) {
2034    jj_scanpos = xsp;
2035    if (jj_3R_108()) {
2036    jj_scanpos = xsp;
2037    if (jj_3R_109()) {
2038    jj_scanpos = xsp;
2039    if (jj_3R_110()) {
2040    jj_scanpos = xsp;
2041    if (jj_3R_111()) return true;
2042    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2043    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2044    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2045    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2046    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2047    return false;
2048  }
2049
2050  final private boolean jj_3R_171() {
2051    Token xsp;
2052    xsp = jj_scanpos;
2053    if (jj_3R_174()) {
2054    jj_scanpos = xsp;
2055    if (jj_3R_175()) {
2056    jj_scanpos = xsp;
2057    if (jj_3R_176()) return true;
2058    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2059    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2060    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2061    return false;
2062  }
2063
2064  final private boolean jj_3R_172() {
2065    if (jj_3R_177()) return true;
2066    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2067    return false;
2068  }
2069
2070  final private boolean jj_3R_153() {
2071    if (jj_scan_token(86)) return true;
2072    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2073    return false;
2074  }
2075
2076  final private boolean jj_3R_130() {
2077    Token xsp;
2078    xsp = jj_scanpos;
2079    if (jj_3R_153()) jj_scanpos = xsp;
2080    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2081    return false;
2082  }
2083
2084  final private boolean jj_3R_54() {
2085    if (jj_scan_token(FUNCTION_FORMAT_NUMBER)) return true;
2086    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2087    return false;
2088  }
2089
2090  final private boolean jj_3R_170() {
2091    Token xsp;
2092    xsp = jj_scanpos;
2093    if (jj_3R_172()) {
2094    jj_scanpos = xsp;
2095    if (jj_3R_173()) return true;
2096    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2097    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2098    return false;
2099  }
2100
2101  final private boolean jj_3R_53() {
2102    if (jj_scan_token(FUNCTION_KEY)) return true;
2103    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2104    return false;
2105  }
2106
2107  final private boolean jj_3R_52() {
2108    if (jj_scan_token(FUNCTION_ROUND)) return true;
2109    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2110    return false;
2111  }
2112
2113  final private boolean jj_3R_51() {
2114    if (jj_scan_token(FUNCTION_CEILING)) return true;
2115    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2116    return false;
2117  }
2118
2119  final private boolean jj_3R_50() {
2120    if (jj_scan_token(FUNCTION_FLOOR)) return true;
2121    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2122    return false;
2123  }
2124
2125  final private boolean jj_3R_49() {
2126    if (jj_scan_token(FUNCTION_SUM)) return true;
2127    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2128    return false;
2129  }
2130
2131  final private boolean jj_3R_48() {
2132    if (jj_scan_token(FUNCTION_NUMBER)) return true;
2133    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2134    return false;
2135  }
2136
2137  final private boolean jj_3R_176() {
2138    if (jj_scan_token(MOD)) return true;
2139    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2140    if (jj_3R_170()) return true;
2141    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2142    return false;
2143  }
2144
2145  final private boolean jj_3R_47() {
2146    if (jj_scan_token(FUNCTION_LANG)) return true;
2147    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2148    return false;
2149  }
2150
2151  final private boolean jj_3R_175() {
2152    if (jj_scan_token(DIV)) return true;
2153    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2154    if (jj_3R_170()) return true;
2155    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2156    return false;
2157  }
2158
2159  final private boolean jj_3R_46() {
2160    if (jj_scan_token(FUNCTION_NULL)) return true;
2161    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2162    return false;
2163  }
2164
2165  final private boolean jj_3R_174() {
2166    if (jj_scan_token(88)) return true;
2167    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2168    if (jj_3R_170()) return true;
2169    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2170    return false;
2171  }
2172
2173  final private boolean jj_3R_45() {
2174    if (jj_scan_token(FUNCTION_FALSE)) return true;
2175    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2176    return false;
2177  }
2178
2179  final private boolean jj_3R_44() {
2180    if (jj_scan_token(FUNCTION_TRUE)) return true;
2181    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2182    return false;
2183  }
2184
2185  final private boolean jj_3R_43() {
2186    if (jj_scan_token(FUNCTION_NOT)) return true;
2187    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2188    return false;
2189  }
2190
2191  final private boolean jj_3R_42() {
2192    if (jj_scan_token(FUNCTION_BOOLEAN)) return true;
2193    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2194    return false;
2195  }
2196
2197  final private boolean jj_3R_41() {
2198    if (jj_scan_token(FUNCTION_TRANSLATE)) return true;
2199    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2200    return false;
2201  }
2202
2203  final private boolean jj_3R_116() {
2204    if (jj_scan_token(84)) return true;
2205    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2206    if (jj_3R_104()) return true;
2207    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2208    if (jj_scan_token(85)) return true;
2209    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2210    return false;
2211  }
2212
2213  final private boolean jj_3R_40() {
2214    if (jj_scan_token(FUNCTION_NORMALIZE_SPACE)) return true;
2215    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2216    return false;
2217  }
2218
2219  final private boolean jj_3R_39() {
2220    if (jj_scan_token(FUNCTION_STRING_LENGTH)) return true;
2221    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2222    return false;
2223  }
2224
2225  final private boolean jj_3R_38() {
2226    if (jj_scan_token(FUNCTION_SUBSTRING)) return true;
2227    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2228    return false;
2229  }
2230
2231  final private boolean jj_3R_37() {
2232    if (jj_scan_token(FUNCTION_SUBSTRING_AFTER)) return true;
2233    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2234    return false;
2235  }
2236
2237  final private boolean jj_3R_36() {
2238    if (jj_scan_token(FUNCTION_SUBSTRING_BEFORE)) return true;
2239    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2240    return false;
2241  }
2242
2243  final private boolean jj_3R_168() {
2244    if (jj_3R_170()) return true;
2245    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2246    Token xsp;
2247    while (true) {
2248      xsp = jj_scanpos;
2249      if (jj_3R_171()) { jj_scanpos = xsp; break; }
2250      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2251    }
2252    return false;
2253  }
2254
2255  final private boolean jj_3R_35() {
2256    if (jj_scan_token(FUNCTION_CONTAINS)) return true;
2257    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2258    return false;
2259  }
2260
2261  final private boolean jj_3R_34() {
2262    if (jj_scan_token(FUNCTION_STARTS_WITH)) return true;
2263    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2264    return false;
2265  }
2266
2267  final private boolean jj_3R_33() {
2268    if (jj_scan_token(FUNCTION_CONCAT)) return true;
2269    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2270    return false;
2271  }
2272
2273  final private boolean jj_3R_32() {
2274    if (jj_scan_token(FUNCTION_STRING)) return true;
2275    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2276    return false;
2277  }
2278
2279  final private boolean jj_3R_31() {
2280    if (jj_scan_token(FUNCTION_NAME)) return true;
2281    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2282    return false;
2283  }
2284
2285  final private boolean jj_3R_30() {
2286    if (jj_scan_token(FUNCTION_NAMESPACE_URI)) return true;
2287    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2288    return false;
2289  }
2290
2291  final private boolean jj_3R_29() {
2292    if (jj_scan_token(FUNCTION_LOCAL_NAME)) return true;
2293    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2294    return false;
2295  }
2296
2297  final private boolean jj_3R_169() {
2298    if (jj_scan_token(MINUS)) return true;
2299    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2300    if (jj_3R_168()) return true;
2301    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2302    return false;
2303  }
2304
2305  final private boolean jj_3R_28() {
2306    if (jj_scan_token(FUNCTION_ID)) return true;
2307    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2308    return false;
2309  }
2310
2311  final private boolean jj_3R_27() {
2312    if (jj_scan_token(FUNCTION_COUNT)) return true;
2313    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2314    return false;
2315  }
2316
2317  final private boolean jj_3R_152() {
2318    if (jj_scan_token(AXIS_DESCENDANT_OR_SELF)) return true;
2319    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2320    return false;
2321  }
2322
2323  final private boolean jj_3R_26() {
2324    if (jj_scan_token(FUNCTION_POSITION)) return true;
2325    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2326    return false;
2327  }
2328
2329  final private boolean jj_3R_25() {
2330    if (jj_scan_token(FUNCTION_LAST)) return true;
2331    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2332    return false;
2333  }
2334
2335  final private boolean jj_3R_151() {
2336    if (jj_scan_token(AXIS_PRECEDING_SIBLING)) return true;
2337    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2338    return false;
2339  }
2340
2341  final private boolean jj_3R_24() {
2342    if (jj_scan_token(PI)) return true;
2343    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2344    return false;
2345  }
2346
2347  final private boolean jj_3R_150() {
2348    if (jj_scan_token(AXIS_FOLLOWING_SIBLING)) return true;
2349    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2350    return false;
2351  }
2352
2353  final private boolean jj_3R_23() {
2354    if (jj_scan_token(COMMENT)) return true;
2355    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2356    return false;
2357  }
2358
2359  final private boolean jj_3R_149() {
2360    if (jj_scan_token(AXIS_ANCESTOR_OR_SELF)) return true;
2361    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2362    return false;
2363  }
2364
2365  final private boolean jj_3R_163() {
2366    if (jj_scan_token(PLUS)) return true;
2367    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2368    if (jj_3R_162()) return true;
2369    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2370    return false;
2371  }
2372
2373  final private boolean jj_3R_22() {
2374    if (jj_scan_token(TEXT)) return true;
2375    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2376    return false;
2377  }
2378
2379  final private boolean jj_3R_148() {
2380    if (jj_scan_token(AXIS_DESCENDANT)) return true;
2381    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2382    return false;
2383  }
2384
2385  final private boolean jj_3R_21() {
2386    if (jj_scan_token(NODE)) return true;
2387    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2388    return false;
2389  }
2390
2391  final private boolean jj_3R_147() {
2392    if (jj_scan_token(AXIS_FOLLOWING)) return true;
2393    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2394    return false;
2395  }
2396
2397  final private boolean jj_3R_20() {
2398    if (jj_3R_98()) return true;
2399    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2400    return false;
2401  }
2402
2403  final private boolean jj_3R_146() {
2404    if (jj_scan_token(AXIS_PRECEDING)) return true;
2405    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2406    return false;
2407  }
2408
2409  final private boolean jj_3R_145() {
2410    if (jj_scan_token(AXIS_NAMESPACE)) return true;
2411    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2412    return false;
2413  }
2414
2415  final private boolean jj_3R_162() {
2416    if (jj_3R_168()) return true;
2417    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2418    Token xsp;
2419    while (true) {
2420      xsp = jj_scanpos;
2421      if (jj_3R_169()) { jj_scanpos = xsp; break; }
2422      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2423    }
2424    return false;
2425  }
2426
2427  final private boolean jj_3R_144() {
2428    if (jj_scan_token(AXIS_ATTRIBUTE)) return true;
2429    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2430    return false;
2431  }
2432
2433  final private boolean jj_3R_143() {
2434    if (jj_scan_token(AXIS_ANCESTOR)) return true;
2435    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2436    return false;
2437  }
2438
2439  final private boolean jj_3R_142() {
2440    if (jj_scan_token(AXIS_PARENT)) return true;
2441    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2442    return false;
2443  }
2444
2445  final private boolean jj_3R_15() {
2446    Token xsp;
2447    xsp = jj_scanpos;
2448    if (jj_3R_20()) {
2449    jj_scanpos = xsp;
2450    if (jj_3R_21()) {
2451    jj_scanpos = xsp;
2452    if (jj_3R_22()) {
2453    jj_scanpos = xsp;
2454    if (jj_3R_23()) {
2455    jj_scanpos = xsp;
2456    if (jj_3R_24()) {
2457    jj_scanpos = xsp;
2458    if (jj_3R_25()) {
2459    jj_scanpos = xsp;
2460    if (jj_3R_26()) {
2461    jj_scanpos = xsp;
2462    if (jj_3R_27()) {
2463    jj_scanpos = xsp;
2464    if (jj_3R_28()) {
2465    jj_scanpos = xsp;
2466    if (jj_3R_29()) {
2467    jj_scanpos = xsp;
2468    if (jj_3R_30()) {
2469    jj_scanpos = xsp;
2470    if (jj_3R_31()) {
2471    jj_scanpos = xsp;
2472    if (jj_3R_32()) {
2473    jj_scanpos = xsp;
2474    if (jj_3R_33()) {
2475    jj_scanpos = xsp;
2476    if (jj_3R_34()) {
2477    jj_scanpos = xsp;
2478    if (jj_3R_35()) {
2479    jj_scanpos = xsp;
2480    if (jj_3R_36()) {
2481    jj_scanpos = xsp;
2482    if (jj_3R_37()) {
2483    jj_scanpos = xsp;
2484    if (jj_3R_38()) {
2485    jj_scanpos = xsp;
2486    if (jj_3R_39()) {
2487    jj_scanpos = xsp;
2488    if (jj_3R_40()) {
2489    jj_scanpos = xsp;
2490    if (jj_3R_41()) {
2491    jj_scanpos = xsp;
2492    if (jj_3R_42()) {
2493    jj_scanpos = xsp;
2494    if (jj_3R_43()) {
2495    jj_scanpos = xsp;
2496    if (jj_3R_44()) {
2497    jj_scanpos = xsp;
2498    if (jj_3R_45()) {
2499    jj_scanpos = xsp;
2500    if (jj_3R_46()) {
2501    jj_scanpos = xsp;
2502    if (jj_3R_47()) {
2503    jj_scanpos = xsp;
2504    if (jj_3R_48()) {
2505    jj_scanpos = xsp;
2506    if (jj_3R_49()) {
2507    jj_scanpos = xsp;
2508    if (jj_3R_50()) {
2509    jj_scanpos = xsp;
2510    if (jj_3R_51()) {
2511    jj_scanpos = xsp;
2512    if (jj_3R_52()) {
2513    jj_scanpos = xsp;
2514    if (jj_3R_53()) {
2515    jj_scanpos = xsp;
2516    if (jj_3R_54()) return true;
2517    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2518    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2519    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2520    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2521    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2522    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2523    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2524    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2525    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2526    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2527    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2528    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2529    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2530    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2531    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2532    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2533    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2534    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2535    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2536    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2537    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2538    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2539    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2540    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2541    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2542    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2543    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2544    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2545    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2546    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2547    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2548    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2549    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2550    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2551    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2552    return false;
2553  }
2554
2555  final private boolean jj_3R_141() {
2556    if (jj_scan_token(AXIS_CHILD)) return true;
2557    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2558    return false;
2559  }
2560
2561  final private boolean jj_3R_140() {
2562    if (jj_scan_token(AXIS_SELF)) return true;
2563    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2564    return false;
2565  }
2566
2567  final private boolean jj_3R_129() {
2568    Token xsp;
2569    xsp = jj_scanpos;
2570    if (jj_3R_140()) {
2571    jj_scanpos = xsp;
2572    if (jj_3R_141()) {
2573    jj_scanpos = xsp;
2574    if (jj_3R_142()) {
2575    jj_scanpos = xsp;
2576    if (jj_3R_143()) {
2577    jj_scanpos = xsp;
2578    if (jj_3R_144()) {
2579    jj_scanpos = xsp;
2580    if (jj_3R_145()) {
2581    jj_scanpos = xsp;
2582    if (jj_3R_146()) {
2583    jj_scanpos = xsp;
2584    if (jj_3R_147()) {
2585    jj_scanpos = xsp;
2586    if (jj_3R_148()) {
2587    jj_scanpos = xsp;
2588    if (jj_3R_149()) {
2589    jj_scanpos = xsp;
2590    if (jj_3R_150()) {
2591    jj_scanpos = xsp;
2592    if (jj_3R_151()) {
2593    jj_scanpos = xsp;
2594    if (jj_3R_152()) return true;
2595    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2596    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2597    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2598    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2599    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2600    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2601    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2602    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2603    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2604    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2605    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2606    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2607    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2608    return false;
2609  }
2610
2611  final private boolean jj_3R_159() {
2612    Token xsp;
2613    xsp = jj_scanpos;
2614    if (jj_3R_164()) {
2615    jj_scanpos = xsp;
2616    if (jj_3R_165()) {
2617    jj_scanpos = xsp;
2618    if (jj_3R_166()) {
2619    jj_scanpos = xsp;
2620    if (jj_3R_167()) return true;
2621    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2622    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2623    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2624    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2625    return false;
2626  }
2627
2628  final private boolean jj_3R_158() {
2629    if (jj_3R_162()) return true;
2630    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2631    Token xsp;
2632    while (true) {
2633      xsp = jj_scanpos;
2634      if (jj_3R_163()) { jj_scanpos = xsp; break; }
2635      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2636    }
2637    return false;
2638  }
2639
2640  final private boolean jj_3R_122() {
2641    if (jj_3R_130()) return true;
2642    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2643    return false;
2644  }
2645
2646  final private boolean jj_3R_121() {
2647    if (jj_3R_129()) return true;
2648    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2649    return false;
2650  }
2651
2652  final private boolean jj_3R_167() {
2653    if (jj_scan_token(GTE)) return true;
2654    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2655    if (jj_3R_158()) return true;
2656    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2657    return false;
2658  }
2659
2660  final private boolean jj_3R_112() {
2661    Token xsp;
2662    xsp = jj_scanpos;
2663    if (jj_3R_121()) {
2664    jj_scanpos = xsp;
2665    if (jj_3R_122()) return true;
2666    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2667    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2668    return false;
2669  }
2670
2671  final private boolean jj_3R_166() {
2672    if (jj_scan_token(LTE)) return true;
2673    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2674    if (jj_3R_158()) return true;
2675    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2676    return false;
2677  }
2678
2679  final private boolean jj_3R_165() {
2680    if (jj_scan_token(GT)) return true;
2681    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2682    if (jj_3R_158()) return true;
2683    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2684    return false;
2685  }
2686
2687  final private boolean jj_3R_157() {
2688    Token xsp;
2689    xsp = jj_scanpos;
2690    if (jj_3R_160()) {
2691    jj_scanpos = xsp;
2692    if (jj_3R_161()) return true;
2693    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2694    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2695    return false;
2696  }
2697
2698  final private boolean jj_3R_164() {
2699    if (jj_scan_token(LT)) return true;
2700    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2701    if (jj_3R_158()) return true;
2702    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2703    return false;
2704  }
2705
2706  final private boolean jj_3R_156() {
2707    if (jj_3R_158()) return true;
2708    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2709    Token xsp;
2710    while (true) {
2711      xsp = jj_scanpos;
2712      if (jj_3R_159()) { jj_scanpos = xsp; break; }
2713      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2714    }
2715    return false;
2716  }
2717
2718  final private boolean jj_3R_161() {
2719    if (jj_scan_token(NEQ)) return true;
2720    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2721    if (jj_3R_156()) return true;
2722    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2723    return false;
2724  }
2725
2726  final private boolean jj_3R_160() {
2727    if (jj_scan_token(EQ)) return true;
2728    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2729    if (jj_3R_156()) return true;
2730    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2731    return false;
2732  }
2733
2734  final private boolean jj_3R_102() {
2735    if (jj_3R_116()) return true;
2736    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2737    return false;
2738  }
2739
2740  final private boolean jj_3_4() {
2741    if (jj_scan_token(PI)) return true;
2742    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2743    return false;
2744  }
2745
2746  final private boolean jj_3_3() {
2747    if (jj_3R_17()) return true;
2748    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2749    if (jj_scan_token(80)) return true;
2750    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2751    if (jj_scan_token(81)) return true;
2752    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2753    return false;
2754  }
2755
2756  final private boolean jj_3R_101() {
2757    if (jj_scan_token(83)) return true;
2758    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2759    return false;
2760  }
2761
2762  final private boolean jj_3R_100() {
2763    if (jj_scan_token(82)) return true;
2764    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2765    return false;
2766  }
2767
2768  final private boolean jj_3R_115() {
2769    if (jj_3R_123()) return true;
2770    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2771    return false;
2772  }
2773
2774  final private boolean jj_3R_134() {
2775    if (jj_3R_156()) return true;
2776    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2777    Token xsp;
2778    while (true) {
2779      xsp = jj_scanpos;
2780      if (jj_3R_157()) { jj_scanpos = xsp; break; }
2781      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2782    }
2783    return false;
2784  }
2785
2786  final private boolean jj_3R_114() {
2787    if (jj_scan_token(PI)) return true;
2788    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2789    if (jj_scan_token(80)) return true;
2790    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2791    if (jj_scan_token(Literal)) return true;
2792    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2793    if (jj_scan_token(81)) return true;
2794    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2795    return false;
2796  }
2797
2798  final private boolean jj_3R_113() {
2799    if (jj_3R_17()) return true;
2800    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2801    if (jj_scan_token(80)) return true;
2802    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2803    if (jj_scan_token(81)) return true;
2804    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2805    return false;
2806  }
2807
2808  final private boolean jj_3R_99() {
2809    if (jj_3R_112()) return true;
2810    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2811    Token xsp;
2812    xsp = jj_scanpos;
2813    if (jj_3R_113()) {
2814    jj_scanpos = xsp;
2815    if (jj_3R_114()) {
2816    jj_scanpos = xsp;
2817    if (jj_3R_115()) return true;
2818    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2819    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2820    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2821    return false;
2822  }
2823
2824  final private boolean jj_3R_135() {
2825    if (jj_scan_token(AND)) return true;
2826    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2827    if (jj_3R_134()) return true;
2828    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2829    return false;
2830  }
2831
2832  final private boolean jj_3R_57() {
2833    Token xsp;
2834    xsp = jj_scanpos;
2835    if (jj_3R_99()) {
2836    jj_scanpos = xsp;
2837    if (jj_3R_100()) {
2838    jj_scanpos = xsp;
2839    if (jj_3R_101()) return true;
2840    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2841    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2842    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2843    while (true) {
2844      xsp = jj_scanpos;
2845      if (jj_3R_102()) { jj_scanpos = xsp; break; }
2846      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2847    }
2848    return false;
2849  }
2850
2851  final private boolean jj_3R_125() {
2852    if (jj_3R_134()) return true;
2853    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2854    Token xsp;
2855    while (true) {
2856      xsp = jj_scanpos;
2857      if (jj_3R_135()) { jj_scanpos = xsp; break; }
2858      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2859    }
2860    return false;
2861  }
2862
2863  final private boolean jj_3R_193() {
2864    if (jj_3R_16()) return true;
2865    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2866    return false;
2867  }
2868
2869  final private boolean jj_3R_56() {
2870    if (jj_scan_token(SLASHSLASH)) return true;
2871    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2872    return false;
2873  }
2874
2875  final private boolean jj_3R_55() {
2876    if (jj_scan_token(SLASH)) return true;
2877    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2878    return false;
2879  }
2880
2881  final private boolean jj_3R_126() {
2882    if (jj_scan_token(OR)) return true;
2883    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2884    if (jj_3R_125()) return true;
2885    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2886    return false;
2887  }
2888
2889  final private boolean jj_3R_16() {
2890    Token xsp;
2891    xsp = jj_scanpos;
2892    if (jj_3R_55()) {
2893    jj_scanpos = xsp;
2894    if (jj_3R_56()) return true;
2895    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2896    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2897    if (jj_3R_57()) return true;
2898    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2899    return false;
2900  }
2901
2902  final private boolean jj_3R_190() {
2903    if (jj_3R_16()) return true;
2904    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2905    return false;
2906  }
2907
2908  final private boolean jj_3R_118() {
2909    if (jj_3R_125()) return true;
2910    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2911    Token xsp;
2912    while (true) {
2913      xsp = jj_scanpos;
2914      if (jj_3R_126()) { jj_scanpos = xsp; break; }
2915      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2916    }
2917    return false;
2918  }
2919
2920  final private boolean jj_3R_188() {
2921    if (jj_3R_57()) return true;
2922    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2923    Token xsp;
2924    while (true) {
2925      xsp = jj_scanpos;
2926      if (jj_3R_190()) { jj_scanpos = xsp; break; }
2927      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2928    }
2929    return false;
2930  }
2931
2932  final private boolean jj_3_2() {
2933    if (jj_3R_16()) return true;
2934    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2935    return false;
2936  }
2937
2938  final private boolean jj_3R_185() {
2939    if (jj_3R_16()) return true;
2940    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2941    return false;
2942  }
2943
2944  final private boolean jj_3R_192() {
2945    if (jj_scan_token(SLASH)) return true;
2946    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2947    return false;
2948  }
2949
2950  final private boolean jj_3R_191() {
2951    if (jj_3R_16()) return true;
2952    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2953    Token xsp;
2954    while (true) {
2955      xsp = jj_scanpos;
2956      if (jj_3R_193()) { jj_scanpos = xsp; break; }
2957      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2958    }
2959    return false;
2960  }
2961
2962  final private boolean jj_3R_184() {
2963    if (jj_3R_116()) return true;
2964    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2965    return false;
2966  }
2967
2968  final private boolean jj_3R_189() {
2969    Token xsp;
2970    xsp = jj_scanpos;
2971    if (jj_3R_191()) {
2972    jj_scanpos = xsp;
2973    if (jj_3R_192()) return true;
2974    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2975    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2976    return false;
2977  }
2978
2979  final private boolean jj_3R_182() {
2980    if (jj_3R_19()) return true;
2981    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2982    Token xsp;
2983    while (true) {
2984      xsp = jj_scanpos;
2985      if (jj_3R_184()) { jj_scanpos = xsp; break; }
2986      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2987    }
2988    while (true) {
2989      xsp = jj_scanpos;
2990      if (jj_3R_185()) { jj_scanpos = xsp; break; }
2991      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2992    }
2993    return false;
2994  }
2995
2996  final private boolean jj_3_6() {
2997    if (jj_3R_19()) return true;
2998    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
2999    return false;
3000  }
3001
3002  final private boolean jj_3R_187() {
3003    if (jj_3R_189()) return true;
3004    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3005    return false;
3006  }
3007
3008  final private boolean jj_3R_186() {
3009    if (jj_3R_188()) return true;
3010    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3011    return false;
3012  }
3013
3014  final private boolean jj_3R_183() {
3015    Token xsp;
3016    xsp = jj_scanpos;
3017    if (jj_3R_186()) {
3018    jj_scanpos = xsp;
3019    if (jj_3R_187()) return true;
3020    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3021    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3022    return false;
3023  }
3024
3025  final private boolean jj_3R_181() {
3026    if (jj_3R_183()) return true;
3027    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3028    return false;
3029  }
3030
3031  final private boolean jj_3R_180() {
3032    if (jj_3R_182()) return true;
3033    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3034    return false;
3035  }
3036
3037  final private boolean jj_3R_178() {
3038    Token xsp;
3039    xsp = jj_scanpos;
3040    if (jj_3R_180()) {
3041    jj_scanpos = xsp;
3042    if (jj_3R_181()) return true;
3043    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3044    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3045    return false;
3046  }
3047
3048  final private boolean jj_3R_179() {
3049    if (jj_scan_token(UNION)) return true;
3050    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3051    if (jj_3R_178()) return true;
3052    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3053    return false;
3054  }
3055
3056  final private boolean jj_3R_177() {
3057    if (jj_3R_178()) return true;
3058    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3059    Token xsp;
3060    while (true) {
3061      xsp = jj_scanpos;
3062      if (jj_3R_179()) { jj_scanpos = xsp; break; }
3063      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3064    }
3065    return false;
3066  }
3067
3068  final private boolean jj_3R_136() {
3069    if (jj_3R_104()) return true;
3070    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3071    return false;
3072  }
3073
3074  final private boolean jj_3R_137() {
3075    if (jj_scan_token(87)) return true;
3076    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3077    if (jj_3R_136()) return true;
3078    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3079    return false;
3080  }
3081
3082  final private boolean jj_3R_127() {
3083    if (jj_3R_136()) return true;
3084    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3085    Token xsp;
3086    while (true) {
3087      xsp = jj_scanpos;
3088      if (jj_3R_137()) { jj_scanpos = xsp; break; }
3089      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3090    }
3091    return false;
3092  }
3093
3094  final private boolean jj_3R_119() {
3095    if (jj_scan_token(80)) return true;
3096    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3097    Token xsp;
3098    xsp = jj_scanpos;
3099    if (jj_3R_127()) jj_scanpos = xsp;
3100    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3101    if (jj_scan_token(81)) return true;
3102    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3103    return false;
3104  }
3105
3106  final private boolean jj_3R_61() {
3107    if (jj_scan_token(PI)) return true;
3108    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3109    return false;
3110  }
3111
3112  final private boolean jj_3R_60() {
3113    if (jj_scan_token(COMMENT)) return true;
3114    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3115    return false;
3116  }
3117
3118  final private boolean jj_3R_59() {
3119    if (jj_scan_token(NODE)) return true;
3120    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3121    return false;
3122  }
3123
3124  final private boolean jj_3R_58() {
3125    if (jj_scan_token(TEXT)) return true;
3126    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3127    return false;
3128  }
3129
3130  final private boolean jj_3_1() {
3131    if (jj_3R_15()) return true;
3132    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3133    if (jj_scan_token(79)) return true;
3134    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3135    return false;
3136  }
3137
3138  final private boolean jj_3R_17() {
3139    Token xsp;
3140    xsp = jj_scanpos;
3141    if (jj_3R_58()) {
3142    jj_scanpos = xsp;
3143    if (jj_3R_59()) {
3144    jj_scanpos = xsp;
3145    if (jj_3R_60()) {
3146    jj_scanpos = xsp;
3147    if (jj_3R_61()) return true;
3148    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3149    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3150    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3151    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3152    return false;
3153  }
3154
3155  final private boolean jj_3R_155() {
3156    if (jj_3R_15()) return true;
3157    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3158    return false;
3159  }
3160
3161  final private boolean jj_3R_139() {
3162    if (jj_3R_98()) return true;
3163    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3164    return false;
3165  }
3166
3167  final private boolean jj_3R_138() {
3168    if (jj_3R_15()) return true;
3169    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3170    if (jj_scan_token(79)) return true;
3171    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3172    if (jj_3R_15()) return true;
3173    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3174    return false;
3175  }
3176
3177  final private boolean jj_3R_154() {
3178    if (jj_scan_token(88)) return true;
3179    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3180    return false;
3181  }
3182
3183  final private boolean jj_3R_132() {
3184    if (jj_3R_15()) return true;
3185    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3186    return false;
3187  }
3188
3189  final private boolean jj_3R_105() {
3190    if (jj_3R_18()) return true;
3191    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3192    if (jj_3R_119()) return true;
3193    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3194    return false;
3195  }
3196
3197  final private boolean jj_3R_124() {
3198    if (jj_scan_token(79)) return true;
3199    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3200    if (jj_3R_15()) return true;
3201    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3202    return false;
3203  }
3204
3205  final private boolean jj_3R_133() {
3206    if (jj_scan_token(79)) return true;
3207    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3208    Token xsp;
3209    xsp = jj_scanpos;
3210    if (jj_3R_154()) {
3211    jj_scanpos = xsp;
3212    if (jj_3R_155()) return true;
3213    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3214    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3215    return false;
3216  }
3217
3218  final private boolean jj_3R_128() {
3219    Token xsp;
3220    xsp = jj_scanpos;
3221    if (jj_3R_138()) {
3222    jj_scanpos = xsp;
3223    if (jj_3R_139()) return true;
3224    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3225    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3226    return false;
3227  }
3228
3229  final private boolean jj_3R_131() {
3230    if (jj_scan_token(88)) return true;
3231    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3232    return false;
3233  }
3234
3235  final private boolean jj_3R_123() {
3236    Token xsp;
3237    xsp = jj_scanpos;
3238    if (jj_3R_131()) {
3239    jj_scanpos = xsp;
3240    if (jj_3R_132()) return true;
3241    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3242    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3243    xsp = jj_scanpos;
3244    if (jj_3R_133()) jj_scanpos = xsp;
3245    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3246    return false;
3247  }
3248
3249  final private boolean jj_3R_106() {
3250    if (jj_3R_120()) return true;
3251    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3252    if (jj_3R_119()) return true;
3253    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3254    return false;
3255  }
3256
3257  final private boolean jj_3R_117() {
3258    if (jj_3R_15()) return true;
3259    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3260    Token xsp;
3261    xsp = jj_scanpos;
3262    if (jj_3R_124()) jj_scanpos = xsp;
3263    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3264    return false;
3265  }
3266
3267  final private boolean jj_3_5() {
3268    if (jj_3R_18()) return true;
3269    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3270    if (jj_scan_token(80)) return true;
3271    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3272    return false;
3273  }
3274
3275  final private boolean jj_3R_103() {
3276    if (jj_scan_token(VARIABLE)) return true;
3277    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3278    if (jj_3R_117()) return true;
3279    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3280    return false;
3281  }
3282
3283  final private boolean jj_3R_91() {
3284    if (jj_scan_token(FUNCTION_FORMAT_NUMBER)) return true;
3285    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3286    return false;
3287  }
3288
3289  final private boolean jj_3R_90() {
3290    if (jj_scan_token(FUNCTION_KEY)) return true;
3291    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3292    return false;
3293  }
3294
3295  final private boolean jj_3R_89() {
3296    if (jj_scan_token(FUNCTION_ROUND)) return true;
3297    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3298    return false;
3299  }
3300
3301  final private boolean jj_3R_88() {
3302    if (jj_scan_token(FUNCTION_CEILING)) return true;
3303    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3304    return false;
3305  }
3306
3307  final private boolean jj_3R_97() {
3308    if (jj_3R_106()) return true;
3309    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3310    return false;
3311  }
3312
3313  final private boolean jj_3R_87() {
3314    if (jj_scan_token(FUNCTION_FLOOR)) return true;
3315    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3316    return false;
3317  }
3318
3319  final private boolean jj_3R_96() {
3320    if (jj_3R_105()) return true;
3321    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3322    return false;
3323  }
3324
3325  final private boolean jj_3R_86() {
3326    if (jj_scan_token(FUNCTION_SUM)) return true;
3327    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3328    return false;
3329  }
3330
3331  final private boolean jj_3R_95() {
3332    if (jj_scan_token(Number)) return true;
3333    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3334    return false;
3335  }
3336
3337  final private boolean jj_3R_85() {
3338    if (jj_scan_token(FUNCTION_NUMBER)) return true;
3339    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3340    return false;
3341  }
3342
3343  final private boolean jj_3R_94() {
3344    if (jj_scan_token(Literal)) return true;
3345    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3346    return false;
3347  }
3348
3349  final private boolean jj_3R_84() {
3350    if (jj_scan_token(FUNCTION_LANG)) return true;
3351    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3352    return false;
3353  }
3354
3355  final private boolean jj_3R_93() {
3356    if (jj_scan_token(80)) return true;
3357    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3358    if (jj_3R_104()) return true;
3359    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3360    if (jj_scan_token(81)) return true;
3361    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3362    return false;
3363  }
3364
3365  final private boolean jj_3R_83() {
3366    if (jj_scan_token(FUNCTION_NULL)) return true;
3367    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3368    return false;
3369  }
3370
3371  final private boolean jj_3R_92() {
3372    if (jj_3R_103()) return true;
3373    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3374    return false;
3375  }
3376
3377  final private boolean jj_3R_82() {
3378    if (jj_scan_token(FUNCTION_FALSE)) return true;
3379    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3380    return false;
3381  }
3382
3383  final private boolean jj_3R_81() {
3384    if (jj_scan_token(FUNCTION_TRUE)) return true;
3385    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3386    return false;
3387  }
3388
3389  final private boolean jj_3R_120() {
3390    if (jj_3R_128()) return true;
3391    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3392    return false;
3393  }
3394
3395  final private boolean jj_3R_80() {
3396    if (jj_scan_token(FUNCTION_NOT)) return true;
3397    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3398    return false;
3399  }
3400
3401  final private boolean jj_3R_79() {
3402    if (jj_scan_token(FUNCTION_BOOLEAN)) return true;
3403    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3404    return false;
3405  }
3406
3407  final private boolean jj_3R_78() {
3408    if (jj_scan_token(FUNCTION_TRANSLATE)) return true;
3409    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3410    return false;
3411  }
3412
3413  final private boolean jj_3R_77() {
3414    if (jj_scan_token(FUNCTION_NORMALIZE_SPACE)) return true;
3415    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3416    return false;
3417  }
3418
3419  final private boolean jj_3R_19() {
3420    Token xsp;
3421    xsp = jj_scanpos;
3422    if (jj_3R_92()) {
3423    jj_scanpos = xsp;
3424    if (jj_3R_93()) {
3425    jj_scanpos = xsp;
3426    if (jj_3R_94()) {
3427    jj_scanpos = xsp;
3428    if (jj_3R_95()) {
3429    jj_scanpos = xsp;
3430    if (jj_3R_96()) {
3431    jj_scanpos = xsp;
3432    if (jj_3R_97()) return true;
3433    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3434    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3435    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3436    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3437    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3438    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3439    return false;
3440  }
3441
3442  final private boolean jj_3R_76() {
3443    if (jj_scan_token(FUNCTION_STRING_LENGTH)) return true;
3444    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3445    return false;
3446  }
3447
3448  final private boolean jj_3R_75() {
3449    if (jj_scan_token(FUNCTION_SUBSTRING)) return true;
3450    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3451    return false;
3452  }
3453
3454  final private boolean jj_3R_74() {
3455    if (jj_scan_token(FUNCTION_SUBSTRING_AFTER)) return true;
3456    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3457    return false;
3458  }
3459
3460  final private boolean jj_3R_73() {
3461    if (jj_scan_token(FUNCTION_SUBSTRING_BEFORE)) return true;
3462    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3463    return false;
3464  }
3465
3466  final private boolean jj_3R_72() {
3467    if (jj_scan_token(FUNCTION_CONTAINS)) return true;
3468    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3469    return false;
3470  }
3471
3472  final private boolean jj_3R_71() {
3473    if (jj_scan_token(FUNCTION_STARTS_WITH)) return true;
3474    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3475    return false;
3476  }
3477
3478  final private boolean jj_3R_70() {
3479    if (jj_scan_token(FUNCTION_CONCAT)) return true;
3480    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3481    return false;
3482  }
3483
3484  final private boolean jj_3R_69() {
3485    if (jj_scan_token(FUNCTION_STRING)) return true;
3486    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3487    return false;
3488  }
3489
3490  final private boolean jj_3R_68() {
3491    if (jj_scan_token(FUNCTION_NAME)) return true;
3492    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3493    return false;
3494  }
3495
3496  final private boolean jj_3R_67() {
3497    if (jj_scan_token(FUNCTION_NAMESPACE_URI)) return true;
3498    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3499    return false;
3500  }
3501
3502  final private boolean jj_3R_66() {
3503    if (jj_scan_token(FUNCTION_LOCAL_NAME)) return true;
3504    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
3505    return false;
3506  }
3507
3508  public XPathParserTokenManager token_source;
3509  SimpleCharStream jj_input_stream;
3510  public Token token, jj_nt;
3511  private Token jj_scanpos, jj_lastpos;
3512  private int jj_la;
3513  public boolean lookingAhead = false;
3514  private boolean jj_semLA;
3515  private int jj_gen;
3516  final private int[] jj_la1 = new int[39];
3517  static private int[] jj_la1_0;
3518  static private int[] jj_la1_1;
3519  static private int[] jj_la1_2;
3520  static {
3521      jj_la1_0();
3522      jj_la1_1();
3523      jj_la1_2();
3524   }
3525   private static void jj_la1_0() {
3526      jj_la1_0 = new int[] {0xf8000000,0x78000000,0x0,0x0,0x78000000,0xf80000c0,0xc0,0x40,0xc0,0xc0,0xf8000000,0xf8000000,0x0,0x0,0x0,0x0,0x160000,0xf8000000,0x0,0xf81604c0,0x100,0xf80000c0,0x0,0xc0,0x8000000,0x10000000,0x1800,0x1800,0x1e000,0x1e000,0x200,0x400,0x60000000,0x60000000,0xf81604c0,0xf8000000,0xf8000000,0x0,0x80000000,};
3527   }
3528   private static void jj_la1_1() {
3529      jj_la1_1 = new int[] {0xffff0007,0x0,0xffff0000,0x0,0x0,0xffffffff,0x0,0x0,0x0,0x0,0xffff0007,0xffffffff,0x0,0xfff8,0xfff8,0x0,0x0,0xffff0007,0x0,0xffffffff,0x0,0xffffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xffffffff,0xffff0007,0xffff0007,0x0,0x7,};
3530   }
3531   private static void jj_la1_2() {
3532      jj_la1_2 = new int[] {0x7fff,0x4000,0x3fff,0x8000,0x4000,0x14c7fff,0x0,0x0,0x0,0x0,0x1007fff,0x14c7fff,0x100000,0x0,0x0,0x400000,0x10000,0x7fff,0x800000,0x14d7fff,0x0,0x14c7fff,0x100000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x1000000,0x14d7fff,0x1007fff,0x1007fff,0x8000,0x0,};
3533   }
3534  final private JJCalls[] jj_2_rtns = new JJCalls[6];
3535  private boolean jj_rescan = false;
3536  private int jj_gc = 0;
3537
3538  public XPathParser(java.io.InputStream stream) {
3539    jj_input_stream = new SimpleCharStream(stream, 1, 1);
3540    token_source = new XPathParserTokenManager(jj_input_stream);
3541    token = new Token();
3542    token.next = jj_nt = token_source.getNextToken();
3543    jj_gen = 0;
3544    for (int i = 0; i < 39; i++) jj_la1[i] = -1;
3545    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3546  }
3547
3548  public void ReInit(java.io.InputStream stream) {
3549    jj_input_stream.ReInit(stream, 1, 1);
3550    token_source.ReInit(jj_input_stream);
3551    token = new Token();
3552    token.next = jj_nt = token_source.getNextToken();
3553    jj_gen = 0;
3554    for (int i = 0; i < 39; i++) jj_la1[i] = -1;
3555    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3556  }
3557
3558  public XPathParser(java.io.Reader stream) {
3559    jj_input_stream = new SimpleCharStream(stream, 1, 1);
3560    token_source = new XPathParserTokenManager(jj_input_stream);
3561    token = new Token();
3562    token.next = jj_nt = token_source.getNextToken();
3563    jj_gen = 0;
3564    for (int i = 0; i < 39; i++) jj_la1[i] = -1;
3565    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3566  }
3567
3568  public void ReInit(java.io.Reader stream) {
3569    jj_input_stream.ReInit(stream, 1, 1);
3570    token_source.ReInit(jj_input_stream);
3571    token = new Token();
3572    token.next = jj_nt = token_source.getNextToken();
3573    jj_gen = 0;
3574    for (int i = 0; i < 39; i++) jj_la1[i] = -1;
3575    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3576  }
3577
3578  public XPathParser(XPathParserTokenManager tm) {
3579    token_source = tm;
3580    token = new Token();
3581    token.next = jj_nt = token_source.getNextToken();
3582    jj_gen = 0;
3583    for (int i = 0; i < 39; i++) jj_la1[i] = -1;
3584    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3585  }
3586
3587  public void ReInit(XPathParserTokenManager tm) {
3588    token_source = tm;
3589    token = new Token();
3590    token.next = jj_nt = token_source.getNextToken();
3591    jj_gen = 0;
3592    for (int i = 0; i < 39; i++) jj_la1[i] = -1;
3593    for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
3594  }
3595
3596  final private Token jj_consume_token(int kind) throws ParseException {
3597    Token oldToken = token;
3598    if ((token = jj_nt).next != null) jj_nt = jj_nt.next;
3599    else jj_nt = jj_nt.next = token_source.getNextToken();
3600    if (token.kind == kind) {
3601      jj_gen++;
3602      if (++jj_gc > 100) {
3603        jj_gc = 0;
3604        for (int i = 0; i < jj_2_rtns.length; i++) {
3605          JJCalls c = jj_2_rtns[i];
3606          while (c != null) {
3607            if (c.gen < jj_gen) c.first = null;
3608            c = c.next;
3609          }
3610        }
3611      }
3612      return token;
3613    }
3614    jj_nt = token;
3615    token = oldToken;
3616    jj_kind = kind;
3617    throw generateParseException();
3618  }
3619
3620  final private boolean jj_scan_token(int kind) {
3621    if (jj_scanpos == jj_lastpos) {
3622      jj_la--;
3623      if (jj_scanpos.next == null) {
3624        jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
3625      } else {
3626        jj_lastpos = jj_scanpos = jj_scanpos.next;
3627      }
3628    } else {
3629      jj_scanpos = jj_scanpos.next;
3630    }
3631    if (jj_rescan) {
3632      int i = 0; Token tok = token;
3633      while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
3634      if (tok != null) jj_add_error_token(kind, i);
3635    }
3636    return (jj_scanpos.kind != kind);
3637  }
3638
3639  final public Token getNextToken() {
3640    if ((token = jj_nt).next != null) jj_nt = jj_nt.next;
3641    else jj_nt = jj_nt.next = token_source.getNextToken();
3642    jj_gen++;
3643    return token;
3644  }
3645
3646  final public Token getToken(int index) {
3647    Token t = lookingAhead ? jj_scanpos : token;
3648    for (int i = 0; i < index; i++) {
3649      if (t.next != null) t = t.next;
3650      else t = t.next = token_source.getNextToken();
3651    }
3652    return t;
3653  }
3654
3655  private java.util.Vector jj_expentries = new java.util.Vector();
3656  private int[] jj_expentry;
3657  private int jj_kind = -1;
3658  private int[] jj_lasttokens = new int[100];
3659  private int jj_endpos;
3660
3661  private void jj_add_error_token(int kind, int pos) {
3662    if (pos >= 100) return;
3663    if (pos == jj_endpos + 1) {
3664      jj_lasttokens[jj_endpos++] = kind;
3665    } else if (jj_endpos != 0) {
3666      jj_expentry = new int[jj_endpos];
3667      for (int i = 0; i < jj_endpos; i++) {
3668        jj_expentry[i] = jj_lasttokens[i];
3669      }
3670      boolean exists = false;
3671      for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
3672        int[] oldentry = (int[])(enum.nextElement());
3673        if (oldentry.length == jj_expentry.length) {
3674          exists = true;
3675          for (int i = 0; i < jj_expentry.length; i++) {
3676            if (oldentry[i] != jj_expentry[i]) {
3677              exists = false;
3678              break;
3679            }
3680          }
3681          if (exists) break;
3682        }
3683      }
3684      if (!exists) jj_expentries.addElement(jj_expentry);
3685      if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
3686    }
3687  }
3688
3689  public ParseException generateParseException() {
3690    jj_expentries.removeAllElements();
3691    boolean[] la1tokens = new boolean[89];
3692    for (int i = 0; i < 89; i++) {
3693      la1tokens[i] = false;
3694    }
3695    if (jj_kind >= 0) {
3696      la1tokens[jj_kind] = true;
3697      jj_kind = -1;
3698    }
3699    for (int i = 0; i < 39; i++) {
3700      if (jj_la1[i] == jj_gen) {
3701        for (int j = 0; j < 32; j++) {
3702          if ((jj_la1_0[i] & (1<<j)) != 0) {
3703            la1tokens[j] = true;
3704          }
3705          if ((jj_la1_1[i] & (1<<j)) != 0) {
3706            la1tokens[32+j] = true;
3707          }
3708          if ((jj_la1_2[i] & (1<<j)) != 0) {
3709            la1tokens[64+j] = true;
3710          }
3711        }
3712      }
3713    }
3714    for (int i = 0; i < 89; i++) {
3715      if (la1tokens[i]) {
3716        jj_expentry = new int[1];
3717        jj_expentry[0] = i;
3718        jj_expentries.addElement(jj_expentry);
3719      }
3720    }
3721    jj_endpos = 0;
3722    jj_rescan_token();
3723    jj_add_error_token(0, 0);
3724    int[][] exptokseq = new int[jj_expentries.size()][];
3725    for (int i = 0; i < jj_expentries.size(); i++) {
3726      exptokseq[i] = (int[])jj_expentries.elementAt(i);
3727    }
3728    return new ParseException(token, exptokseq, tokenImage);
3729  }
3730
3731  final public void enable_tracing() {
3732  }
3733
3734  final public void disable_tracing() {
3735  }
3736
3737  final private void jj_rescan_token() {
3738    jj_rescan = true;
3739    for (int i = 0; i < 6; i++) {
3740      JJCalls p = jj_2_rtns[i];
3741      do {
3742        if (p.gen > jj_gen) {
3743          jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
3744          switch (i) {
3745            case 0: jj_3_1(); break;
3746            case 1: jj_3_2(); break;
3747            case 2: jj_3_3(); break;
3748            case 3: jj_3_4(); break;
3749            case 4: jj_3_5(); break;
3750            case 5: jj_3_6(); break;
3751          }
3752        }
3753        p = p.next;
3754      } while (p != null);
3755    }
3756    jj_rescan = false;
3757  }
3758
3759  final private void jj_save(int index, int xla) {
3760    JJCalls p = jj_2_rtns[index];
3761    while (p.gen > jj_gen) {
3762      if (p.next == null) { p = p.next = new JJCalls(); break; }
3763      p = p.next;
3764    }
3765    p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
3766  }
3767
3768  static final class JJCalls {
3769    int gen;
3770    Token first;
3771    int arg;
3772    JJCalls next;
3773  }
3774
3775    }
3776
Popular Tags