1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.commons.jxpath.ri.parser;
20
21 import java.util.ArrayList;
22
23 import org.apache.commons.jxpath.ri.Compiler;
24
25 public class XPathParser implements XPathParserConstants {
26
27 static final class JJCalls {
28
29 int gen;
30 Token first;
31 int arg;
32 JJCalls next;
33 }
34
35 static private final class LookaheadSuccess extends Error {
36
37
38
39
40 private static final long serialVersionUID = 1L;
41 }
42
43 static private int[] jj_la1_0;
44 static private int[] jj_la1_1;
45 static private int[] jj_la1_2;
46 static {
47 jj_la1_0();
48 jj_la1_1();
49 jj_la1_2();
50 }
51
52 private static void jj_la1_0() {
53 jj_la1_0 = new int[] { 0xf8000000, 0x78000000, 0x0, 0x0, 0x78000000, 0xf80000c0, 0xc0, 0x40, 0xc0, 0xc0, 0xf8000000, 0xf8000000, 0x0, 0x0, 0x0, 0x0,
54 0x160000, 0xf8000000, 0x0, 0xf81604c0, 0x100, 0xf80000c0, 0x0, 0xc0, 0x8000000, 0x10000000, 0x1800, 0x1800, 0x1e000, 0x1e000, 0x200, 0x400,
55 0x60000000, 0x60000000, 0xf81604c0, 0xf8000000, 0xf8000000, 0x0, 0x80000000, };
56 }
57
58 private static void jj_la1_1() {
59 jj_la1_1 = new int[] { 0xffff0007, 0x0, 0xffff0000, 0x0, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0xffff0007, 0xffffffff, 0x0, 0xfff8, 0xfff8, 0x0, 0x0,
60 0xffff0007, 0x0, 0xffffffff, 0x0, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xffffffff, 0xffff0007, 0xffff0007,
61 0x0, 0x7, };
62 }
63
64 private static void jj_la1_2() {
65 jj_la1_2 = new int[] { 0xffff, 0x8000, 0x7fff, 0x10000, 0x8000, 0x298ffff, 0x0, 0x0, 0x0, 0x0, 0x200ffff, 0x298ffff, 0x200000, 0x0, 0x0, 0x800000,
66 0x20000, 0xffff, 0x1000000, 0x29affff, 0x0, 0x298ffff, 0x200000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2000000, 0x2000000, 0x29affff,
67 0x200ffff, 0x200ffff, 0x10000, 0x0, };
68 }
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131 private Compiler compiler;
132 public XPathParserTokenManager token_source;
133 SimpleCharStream jj_input_stream;
134
135
136
137
138
139 public Token token, jj_nt;
140 private Token jj_scanpos, jj_lastpos;
141 private int jj_la;
142
143
144
145 public boolean lookingAhead = false;
146
147
148
149
150
151
152 private boolean jj_semLA;
153
154 private int jj_gen;
155
156
157
158
159
160
161
162
163
164
165 final private int[] jj_la1 = new int[39];
166 final private JJCalls[] jj_2_rtns = new JJCalls[6];
167
168
169
170 private boolean jj_rescan = false;
171 private int jj_gc = 0;
172 final private LookaheadSuccess jj_ls = new LookaheadSuccess();
173 private final java.util.Vector jj_expentries = new java.util.Vector();
174
175
176
177 private int[] jj_expentry;
178 private int jj_kind = -1;
179 private final int[] jj_lasttokens = new int[100];
180
181
182
183 private int jj_endpos;
184
185 public XPathParser(final java.io.InputStream stream) {
186 jj_input_stream = new SimpleCharStream(stream, 1, 1);
187 token_source = new XPathParserTokenManager(jj_input_stream);
188 token = new Token();
189 token.next = jj_nt = token_source.getNextToken();
190 jj_gen = 0;
191 for (int i = 0; i < 39; i++) {
192 jj_la1[i] = -1;
193 }
194 for (int i = 0; i < jj_2_rtns.length; i++) {
195 jj_2_rtns[i] = new JJCalls();
196 }
197 }
198
199 public XPathParser(final java.io.Reader stream) {
200 jj_input_stream = new SimpleCharStream(stream, 1, 1);
201 token_source = new XPathParserTokenManager(jj_input_stream);
202 token = new Token();
203 token.next = jj_nt = token_source.getNextToken();
204 jj_gen = 0;
205 for (int i = 0; i < 39; i++) {
206 jj_la1[i] = -1;
207 }
208 for (int i = 0; i < jj_2_rtns.length; i++) {
209 jj_2_rtns[i] = new JJCalls();
210 }
211 }
212
213 public XPathParser(final XPathParserTokenManager tm) {
214 token_source = tm;
215 token = new Token();
216 token.next = jj_nt = token_source.getNextToken();
217 jj_gen = 0;
218 for (int i = 0; i < 39; i++) {
219 jj_la1[i] = -1;
220 }
221 for (int i = 0; i < jj_2_rtns.length; i++) {
222 jj_2_rtns[i] = new JJCalls();
223 }
224 }
225
226
227
228
229
230 final public int AbbreviatedAxisSpecifier() throws ParseException {
231 int axis = Compiler.AXIS_CHILD;
232 switch (jj_nt.kind) {
233 case 87:
234 jj_consume_token(87);
235 axis = Compiler.AXIS_ATTRIBUTE;
236 break;
237 default:
238 jj_la1[15] = jj_gen;
239 ;
240 }
241 {
242 if (true) {
243 return axis;
244 }
245 }
246 throw new Error("Missing return statement in function");
247 }
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287 final public Object AdditiveExpr() throws ParseException {
288 Object ex, r;
289 ArrayList list = null;
290 ex = SubtractiveExpr();
291 label_12: while (true) {
292 switch (jj_nt.kind) {
293 case PLUS:
294 ;
295 break;
296 default:
297 jj_la1[30] = jj_gen;
298 break label_12;
299 }
300 jj_consume_token(PLUS);
301 r = SubtractiveExpr();
302 if (list == null) {
303 list = new ArrayList();
304 list.add(ex);
305 }
306 list.add(r);
307 }
308 if (list != null) {
309 ex = compiler.sum(list.toArray());
310 }
311 {
312 if (true) {
313 return ex;
314 }
315 }
316 throw new Error("Missing return statement in function");
317 }
318
319
320 final public Object AndExpr() throws ParseException {
321 Object ex, r;
322 ArrayList list = null;
323 ex = EqualityExpr();
324 label_9: while (true) {
325 switch (jj_nt.kind) {
326 case AND:
327 ;
328 break;
329 default:
330 jj_la1[25] = jj_gen;
331 break label_9;
332 }
333 jj_consume_token(AND);
334 r = EqualityExpr();
335 if (list == null) {
336 list = new ArrayList();
337 list.add(ex);
338 }
339 list.add(r);
340 }
341 if (list != null) {
342 ex = compiler.and(list.toArray());
343 }
344 {
345 if (true) {
346 return ex;
347 }
348 }
349 throw new Error("Missing return statement in function");
350 }
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378 final public Object Argument() throws ParseException {
379 Object ex;
380 ex = Expression();
381 {
382 if (true) {
383 return ex;
384 }
385 }
386 throw new Error("Missing return statement in function");
387 }
388
389 final public ArrayList ArgumentList() throws ParseException {
390 ArrayList args = null;
391 Object arg;
392 jj_consume_token(81);
393 switch (jj_nt.kind) {
394 case SLASH:
395 case SLASHSLASH:
396 case MINUS:
397 case VARIABLE:
398 case Literal:
399 case Number:
400 case OR:
401 case AND:
402 case MOD:
403 case DIV:
404 case NODE:
405 case TEXT:
406 case COMMENT:
407 case PI:
408 case AXIS_SELF:
409 case AXIS_CHILD:
410 case AXIS_PARENT:
411 case AXIS_ANCESTOR:
412 case AXIS_ATTRIBUTE:
413 case AXIS_NAMESPACE:
414 case AXIS_PRECEDING:
415 case AXIS_FOLLOWING:
416 case AXIS_DESCENDANT:
417 case AXIS_ANCESTOR_OR_SELF:
418 case AXIS_FOLLOWING_SIBLING:
419 case AXIS_PRECEDING_SIBLING:
420 case AXIS_DESCENDANT_OR_SELF:
421 case FUNCTION_LAST:
422 case FUNCTION_POSITION:
423 case FUNCTION_COUNT:
424 case FUNCTION_ID:
425 case FUNCTION_KEY:
426 case FUNCTION_LOCAL_NAME:
427 case FUNCTION_NAMESPACE_URI:
428 case FUNCTION_NAME:
429 case FUNCTION_STRING:
430 case FUNCTION_CONCAT:
431 case FUNCTION_STARTS_WITH:
432 case FUNCTION_ENDS_WITH:
433 case FUNCTION_CONTAINS:
434 case FUNCTION_SUBSTRING_BEFORE:
435 case FUNCTION_SUBSTRING_AFTER:
436 case FUNCTION_SUBSTRING:
437 case FUNCTION_STRING_LENGTH:
438 case FUNCTION_NORMALIZE_SPACE:
439 case FUNCTION_TRANSLATE:
440 case FUNCTION_BOOLEAN:
441 case FUNCTION_NOT:
442 case FUNCTION_TRUE:
443 case FUNCTION_FALSE:
444 case FUNCTION_NULL:
445 case FUNCTION_LANG:
446 case FUNCTION_NUMBER:
447 case FUNCTION_SUM:
448 case FUNCTION_FLOOR:
449 case FUNCTION_CEILING:
450 case FUNCTION_ROUND:
451 case FUNCTION_FORMAT_NUMBER:
452 case NCName:
453 case 81:
454 case 83:
455 case 84:
456 case 87:
457 case 89:
458 arg = Argument();
459 args = new ArrayList();
460 args.add(arg);
461 label_4: while (true) {
462 switch (jj_nt.kind) {
463 case 88:
464 ;
465 break;
466 default:
467 jj_la1[18] = jj_gen;
468 break label_4;
469 }
470 jj_consume_token(88);
471 arg = Argument();
472 args.add(arg);
473 }
474 break;
475 default:
476 jj_la1[19] = jj_gen;
477 ;
478 }
479 jj_consume_token(82);
480 {
481 if (true) {
482 return args;
483 }
484 }
485 throw new Error("Missing return statement in function");
486 }
487
488
489
490
491
492 final public int AxisName() throws ParseException {
493 int axis = 0;
494 switch (jj_nt.kind) {
495 case AXIS_SELF:
496 jj_consume_token(AXIS_SELF);
497 axis = Compiler.AXIS_SELF;
498 break;
499 case AXIS_CHILD:
500 jj_consume_token(AXIS_CHILD);
501 axis = Compiler.AXIS_CHILD;
502 break;
503 case AXIS_PARENT:
504 jj_consume_token(AXIS_PARENT);
505 axis = Compiler.AXIS_PARENT;
506 break;
507 case AXIS_ANCESTOR:
508 jj_consume_token(AXIS_ANCESTOR);
509 axis = Compiler.AXIS_ANCESTOR;
510 break;
511 case AXIS_ATTRIBUTE:
512 jj_consume_token(AXIS_ATTRIBUTE);
513 axis = Compiler.AXIS_ATTRIBUTE;
514 break;
515 case AXIS_NAMESPACE:
516 jj_consume_token(AXIS_NAMESPACE);
517 axis = Compiler.AXIS_NAMESPACE;
518 break;
519 case AXIS_PRECEDING:
520 jj_consume_token(AXIS_PRECEDING);
521 axis = Compiler.AXIS_PRECEDING;
522 break;
523 case AXIS_FOLLOWING:
524 jj_consume_token(AXIS_FOLLOWING);
525 axis = Compiler.AXIS_FOLLOWING;
526 break;
527 case AXIS_DESCENDANT:
528 jj_consume_token(AXIS_DESCENDANT);
529 axis = Compiler.AXIS_DESCENDANT;
530 break;
531 case AXIS_ANCESTOR_OR_SELF:
532 jj_consume_token(AXIS_ANCESTOR_OR_SELF);
533 axis = Compiler.AXIS_ANCESTOR_OR_SELF;
534 break;
535 case AXIS_FOLLOWING_SIBLING:
536 jj_consume_token(AXIS_FOLLOWING_SIBLING);
537 axis = Compiler.AXIS_FOLLOWING_SIBLING;
538 break;
539 case AXIS_PRECEDING_SIBLING:
540 jj_consume_token(AXIS_PRECEDING_SIBLING);
541 axis = Compiler.AXIS_PRECEDING_SIBLING;
542 break;
543 case AXIS_DESCENDANT_OR_SELF:
544 jj_consume_token(AXIS_DESCENDANT_OR_SELF);
545 axis = Compiler.AXIS_DESCENDANT_OR_SELF;
546 break;
547 default:
548 jj_la1[14] = jj_gen;
549 jj_consume_token(-1);
550 throw new ParseException();
551 }
552 {
553 if (true) {
554 return axis;
555 }
556 }
557 throw new Error("Missing return statement in function");
558 }
559
560
561 final public int AxisSpecifier() throws ParseException {
562 int axis;
563 switch (jj_nt.kind) {
564 case AXIS_SELF:
565 case AXIS_CHILD:
566 case AXIS_PARENT:
567 case AXIS_ANCESTOR:
568 case AXIS_ATTRIBUTE:
569 case AXIS_NAMESPACE:
570 case AXIS_PRECEDING:
571 case AXIS_FOLLOWING:
572 case AXIS_DESCENDANT:
573 case AXIS_ANCESTOR_OR_SELF:
574 case AXIS_FOLLOWING_SIBLING:
575 case AXIS_PRECEDING_SIBLING:
576 case AXIS_DESCENDANT_OR_SELF:
577 axis = AxisName();
578 break;
579 default:
580 jj_la1[13] = jj_gen;
581 axis = AbbreviatedAxisSpecifier();
582 }
583 {
584 if (true) {
585 return axis;
586 }
587 }
588 throw new Error("Missing return statement in function");
589 }
590
591 final public Object CoreFunctionCall() throws ParseException {
592 int code = 0;
593 ArrayList args;
594 code = CoreFunctionName();
595 args = ArgumentList();
596 if (args == null) {
597 {
598 if (true) {
599 return compiler.function(code, null);
600 }
601 }
602 } else {
603 {
604 if (true) {
605 return compiler.function(code, args.toArray());
606 }
607 }
608 }
609 throw new Error("Missing return statement in function");
610 }
611
612 final public int CoreFunctionName() throws ParseException {
613 int code;
614 switch (jj_nt.kind) {
615 case FUNCTION_LAST:
616 jj_consume_token(FUNCTION_LAST);
617 code = Compiler.FUNCTION_LAST;
618 break;
619 case FUNCTION_POSITION:
620 jj_consume_token(FUNCTION_POSITION);
621 code = Compiler.FUNCTION_POSITION;
622 break;
623 case FUNCTION_COUNT:
624 jj_consume_token(FUNCTION_COUNT);
625 code = Compiler.FUNCTION_COUNT;
626 break;
627 case FUNCTION_ID:
628 jj_consume_token(FUNCTION_ID);
629 code = Compiler.FUNCTION_ID;
630 break;
631 case FUNCTION_LOCAL_NAME:
632 jj_consume_token(FUNCTION_LOCAL_NAME);
633 code = Compiler.FUNCTION_LOCAL_NAME;
634 break;
635 case FUNCTION_NAMESPACE_URI:
636 jj_consume_token(FUNCTION_NAMESPACE_URI);
637 code = Compiler.FUNCTION_NAMESPACE_URI;
638 break;
639 case FUNCTION_NAME:
640 jj_consume_token(FUNCTION_NAME);
641 code = Compiler.FUNCTION_NAME;
642 break;
643 case FUNCTION_STRING:
644 jj_consume_token(FUNCTION_STRING);
645 code = Compiler.FUNCTION_STRING;
646 break;
647 case FUNCTION_CONCAT:
648 jj_consume_token(FUNCTION_CONCAT);
649 code = Compiler.FUNCTION_CONCAT;
650 break;
651 case FUNCTION_STARTS_WITH:
652 jj_consume_token(FUNCTION_STARTS_WITH);
653 code = Compiler.FUNCTION_STARTS_WITH;
654 break;
655 case FUNCTION_ENDS_WITH:
656 jj_consume_token(FUNCTION_ENDS_WITH);
657 code = Compiler.FUNCTION_ENDS_WITH;
658 break;
659 case FUNCTION_CONTAINS:
660 jj_consume_token(FUNCTION_CONTAINS);
661 code = Compiler.FUNCTION_CONTAINS;
662 break;
663 case FUNCTION_SUBSTRING_BEFORE:
664 jj_consume_token(FUNCTION_SUBSTRING_BEFORE);
665 code = Compiler.FUNCTION_SUBSTRING_BEFORE;
666 break;
667 case FUNCTION_SUBSTRING_AFTER:
668 jj_consume_token(FUNCTION_SUBSTRING_AFTER);
669 code = Compiler.FUNCTION_SUBSTRING_AFTER;
670 break;
671 case FUNCTION_SUBSTRING:
672 jj_consume_token(FUNCTION_SUBSTRING);
673 code = Compiler.FUNCTION_SUBSTRING;
674 break;
675 case FUNCTION_STRING_LENGTH:
676 jj_consume_token(FUNCTION_STRING_LENGTH);
677 code = Compiler.FUNCTION_STRING_LENGTH;
678 break;
679 case FUNCTION_NORMALIZE_SPACE:
680 jj_consume_token(FUNCTION_NORMALIZE_SPACE);
681 code = Compiler.FUNCTION_NORMALIZE_SPACE;
682 break;
683 case FUNCTION_TRANSLATE:
684 jj_consume_token(FUNCTION_TRANSLATE);
685 code = Compiler.FUNCTION_TRANSLATE;
686 break;
687 case FUNCTION_BOOLEAN:
688 jj_consume_token(FUNCTION_BOOLEAN);
689 code = Compiler.FUNCTION_BOOLEAN;
690 break;
691 case FUNCTION_NOT:
692 jj_consume_token(FUNCTION_NOT);
693 code = Compiler.FUNCTION_NOT;
694 break;
695 case FUNCTION_TRUE:
696 jj_consume_token(FUNCTION_TRUE);
697 code = Compiler.FUNCTION_TRUE;
698 break;
699 case FUNCTION_FALSE:
700 jj_consume_token(FUNCTION_FALSE);
701 code = Compiler.FUNCTION_FALSE;
702 break;
703 case FUNCTION_NULL:
704 jj_consume_token(FUNCTION_NULL);
705 code = Compiler.FUNCTION_NULL;
706 break;
707 case FUNCTION_LANG:
708 jj_consume_token(FUNCTION_LANG);
709 code = Compiler.FUNCTION_LANG;
710 break;
711 case FUNCTION_NUMBER:
712 jj_consume_token(FUNCTION_NUMBER);
713 code = Compiler.FUNCTION_NUMBER;
714 break;
715 case FUNCTION_SUM:
716 jj_consume_token(FUNCTION_SUM);
717 code = Compiler.FUNCTION_SUM;
718 break;
719 case FUNCTION_FLOOR:
720 jj_consume_token(FUNCTION_FLOOR);
721 code = Compiler.FUNCTION_FLOOR;
722 break;
723 case FUNCTION_CEILING:
724 jj_consume_token(FUNCTION_CEILING);
725 code = Compiler.FUNCTION_CEILING;
726 break;
727 case FUNCTION_ROUND:
728 jj_consume_token(FUNCTION_ROUND);
729 code = Compiler.FUNCTION_ROUND;
730 break;
731 case FUNCTION_KEY:
732 jj_consume_token(FUNCTION_KEY);
733 code = Compiler.FUNCTION_KEY;
734 break;
735 case FUNCTION_FORMAT_NUMBER:
736 jj_consume_token(FUNCTION_FORMAT_NUMBER);
737 code = Compiler.FUNCTION_FORMAT_NUMBER;
738 break;
739 default:
740 jj_la1[2] = jj_gen;
741 jj_consume_token(-1);
742 throw new ParseException();
743 }
744 {
745 if (true) {
746 return code;
747 }
748 }
749 throw new Error("Missing return statement in function");
750 }
751
752 final public void disable_tracing() {
753 }
754
755 final public void enable_tracing() {
756 }
757
758
759 final public Object EqualityExpr() throws ParseException {
760 Object ex, r;
761 ex = RelationalExpr();
762 label_10: while (true) {
763 switch (jj_nt.kind) {
764 case EQ:
765 case NEQ:
766 ;
767 break;
768 default:
769 jj_la1[26] = jj_gen;
770 break label_10;
771 }
772 switch (jj_nt.kind) {
773 case EQ:
774 jj_consume_token(EQ);
775 r = RelationalExpr();
776 ex = compiler.equal(ex, r);
777 break;
778 case NEQ:
779 jj_consume_token(NEQ);
780 r = RelationalExpr();
781 ex = compiler.notEqual(ex, r);
782 break;
783 default:
784 jj_la1[27] = jj_gen;
785 jj_consume_token(-1);
786 throw new ParseException();
787 }
788 }
789 {
790 if (true) {
791 return ex;
792 }
793 }
794 throw new Error("Missing return statement in function");
795 }
796
797
798 final public Object Expression() throws ParseException {
799 Object ex;
800 ex = OrExpr();
801 {
802 if (true) {
803 return ex;
804 }
805 }
806 throw new Error("Missing return statement in function");
807 }
808
809
810 final public Object FilterExpr() throws ParseException {
811 Object ex, p;
812 final ArrayList ps = new ArrayList();
813 boolean path = false;
814 final ArrayList steps = new ArrayList();
815 ex = PrimaryExpr();
816 label_6: while (true) {
817 switch (jj_nt.kind) {
818 case 85:
819 ;
820 break;
821 default:
822 jj_la1[22] = jj_gen;
823 break label_6;
824 }
825 p = Predicate();
826 path = true;
827 ps.add(p);
828 }
829 label_7: while (true) {
830 switch (jj_nt.kind) {
831 case SLASH:
832 case SLASHSLASH:
833 ;
834 break;
835 default:
836 jj_la1[23] = jj_gen;
837 break label_7;
838 }
839 LocationStep(steps);
840 path = true;
841 }
842 if (path) {
843 {
844 if (true) {
845 return compiler.expressionPath(ex, ps.toArray(), steps.toArray());
846 }
847 }
848 } else {
849 {
850 if (true) {
851 return ex;
852 }
853 }
854 }
855 throw new Error("Missing return statement in function");
856 }
857
858
859 final public Object FunctionCall() throws ParseException {
860 Object name;
861 ArrayList args;
862 name = FunctionName();
863 args = ArgumentList();
864 if (args == null) {
865 {
866 if (true) {
867 return compiler.function(name, null);
868 }
869 }
870 } else {
871 {
872 if (true) {
873 return compiler.function(name, args.toArray());
874 }
875 }
876 }
877 throw new Error("Missing return statement in function");
878 }
879
880
881 final public Object FunctionName() throws ParseException {
882 Object qname;
883 qname = QName_Without_CoreFunctions();
884 {
885 if (true) {
886 return qname;
887 }
888 }
889 throw new Error("Missing return statement in function");
890 }
891
892 public ParseException generateParseException() {
893 jj_expentries.removeAllElements();
894 final boolean[] la1tokens = new boolean[90];
895 for (int i = 0; i < 90; i++) {
896 la1tokens[i] = false;
897 }
898 if (jj_kind >= 0) {
899 la1tokens[jj_kind] = true;
900 jj_kind = -1;
901 }
902 for (int i = 0; i < 39; i++) {
903 if (jj_la1[i] == jj_gen) {
904 for (int j = 0; j < 32; j++) {
905 if ((jj_la1_0[i] & 1 << j) != 0) {
906 la1tokens[j] = true;
907 }
908 if ((jj_la1_1[i] & 1 << j) != 0) {
909 la1tokens[32 + j] = true;
910 }
911 if ((jj_la1_2[i] & 1 << j) != 0) {
912 la1tokens[64 + j] = true;
913 }
914 }
915 }
916 }
917 for (int i = 0; i < 90; i++) {
918 if (la1tokens[i]) {
919 jj_expentry = new int[1];
920 jj_expentry[0] = i;
921 jj_expentries.addElement(jj_expentry);
922 }
923 }
924 jj_endpos = 0;
925 jj_rescan_token();
926 jj_add_error_token(0, 0);
927 final int[][] exptokseq = new int[jj_expentries.size()][];
928 for (int i = 0; i < jj_expentries.size(); i++) {
929 exptokseq[i] = (int[]) jj_expentries.elementAt(i);
930 }
931 return new ParseException(token, exptokseq, tokenImage);
932 }
933
934 final public Token getNextToken() {
935 if ((token = jj_nt).next != null) {
936 jj_nt = jj_nt.next;
937 } else {
938 jj_nt = jj_nt.next = token_source.getNextToken();
939 }
940 jj_gen++;
941 return token;
942 }
943
944 final public Token getToken(final int index) {
945 Token t = lookingAhead ? jj_scanpos : token;
946 for (int i = 0; i < index; i++) {
947 if (t.next != null) {
948 t = t.next;
949 } else {
950 t = t.next = token_source.getNextToken();
951 }
952 }
953 return t;
954 }
955
956 private boolean jj_2_1(final int xla) {
957 jj_la = xla;
958 jj_lastpos = jj_scanpos = token;
959 try {
960 return !jj_3_1();
961 } catch (final LookaheadSuccess ls) {
962 return true;
963 } finally {
964 jj_save(0, xla);
965 }
966 }
967
968 private boolean jj_2_2(final int xla) {
969 jj_la = xla;
970 jj_lastpos = jj_scanpos = token;
971 try {
972 return !jj_3_2();
973 } catch (final LookaheadSuccess ls) {
974 return true;
975 } finally {
976 jj_save(1, xla);
977 }
978 }
979
980 private boolean jj_2_3(final int xla) {
981 jj_la = xla;
982 jj_lastpos = jj_scanpos = token;
983 try {
984 return !jj_3_3();
985 } catch (final LookaheadSuccess ls) {
986 return true;
987 } finally {
988 jj_save(2, xla);
989 }
990 }
991
992 private boolean jj_2_4(final int xla) {
993 jj_la = xla;
994 jj_lastpos = jj_scanpos = token;
995 try {
996 return !jj_3_4();
997 } catch (final LookaheadSuccess ls) {
998 return true;
999 } finally {
1000 jj_save(3, xla);
1001 }
1002 }
1003
1004 private boolean jj_2_5(final int xla) {
1005 jj_la = xla;
1006 jj_lastpos = jj_scanpos = token;
1007 try {
1008 return !jj_3_5();
1009 } catch (final LookaheadSuccess ls) {
1010 return true;
1011 } finally {
1012 jj_save(4, xla);
1013 }
1014 }
1015
1016 private boolean jj_2_6(final int xla) {
1017 jj_la = xla;
1018 jj_lastpos = jj_scanpos = token;
1019 try {
1020 return !jj_3_6();
1021 } catch (final LookaheadSuccess ls) {
1022 return true;
1023 } finally {
1024 jj_save(5, xla);
1025 }
1026 }
1027
1028 private boolean jj_3_1() {
1029 if (jj_3R_15()) {
1030 return true;
1031 }
1032 if (jj_scan_token(80)) {
1033 return true;
1034 }
1035 return false;
1036 }
1037
1038 private boolean jj_3_2() {
1039 if (jj_3R_16()) {
1040 return true;
1041 }
1042 return false;
1043 }
1044
1045 private boolean jj_3_3() {
1046 if (jj_3R_17()) {
1047 return true;
1048 }
1049 if (jj_scan_token(81)) {
1050 return true;
1051 }
1052 if (jj_scan_token(82)) {
1053 return true;
1054 }
1055 return false;
1056 }
1057
1058 private boolean jj_3_4() {
1059 if (jj_scan_token(PI)) {
1060 return true;
1061 }
1062 return false;
1063 }
1064
1065 private boolean jj_3_5() {
1066 if (jj_3R_18()) {
1067 return true;
1068 }
1069 if (jj_scan_token(81)) {
1070 return true;
1071 }
1072 return false;
1073 }
1074
1075 private boolean jj_3_6() {
1076 if (jj_3R_19()) {
1077 return true;
1078 }
1079 return false;
1080 }
1081
1082 private boolean jj_3R_100() {
1083 if (jj_scan_token(AXIS_SELF)) {
1084 return true;
1085 }
1086 return false;
1087 }
1088
1089 private boolean jj_3R_101() {
1090 if (jj_scan_token(AXIS_CHILD)) {
1091 return true;
1092 }
1093 return false;
1094 }
1095
1096 private boolean jj_3R_102() {
1097 if (jj_scan_token(AXIS_PARENT)) {
1098 return true;
1099 }
1100 return false;
1101 }
1102
1103 private boolean jj_3R_103() {
1104 if (jj_scan_token(AXIS_ANCESTOR)) {
1105 return true;
1106 }
1107 return false;
1108 }
1109
1110 private boolean jj_3R_104() {
1111 if (jj_scan_token(AXIS_ATTRIBUTE)) {
1112 return true;
1113 }
1114 return false;
1115 }
1116
1117 private boolean jj_3R_105() {
1118 if (jj_scan_token(AXIS_NAMESPACE)) {
1119 return true;
1120 }
1121 return false;
1122 }
1123
1124 private boolean jj_3R_106() {
1125 if (jj_scan_token(AXIS_PRECEDING)) {
1126 return true;
1127 }
1128 return false;
1129 }
1130
1131 private boolean jj_3R_107() {
1132 if (jj_scan_token(AXIS_FOLLOWING)) {
1133 return true;
1134 }
1135 return false;
1136 }
1137
1138 private boolean jj_3R_108() {
1139 if (jj_scan_token(AXIS_DESCENDANT)) {
1140 return true;
1141 }
1142 return false;
1143 }
1144
1145 private boolean jj_3R_109() {
1146 if (jj_scan_token(AXIS_ANCESTOR_OR_SELF)) {
1147 return true;
1148 }
1149 return false;
1150 }
1151
1152 private boolean jj_3R_110() {
1153 if (jj_scan_token(AXIS_FOLLOWING_SIBLING)) {
1154 return true;
1155 }
1156 return false;
1157 }
1158
1159 private boolean jj_3R_111() {
1160 if (jj_scan_token(AXIS_PRECEDING_SIBLING)) {
1161 return true;
1162 }
1163 return false;
1164 }
1165
1166 private boolean jj_3R_112() {
1167 if (jj_scan_token(AXIS_DESCENDANT_OR_SELF)) {
1168 return true;
1169 }
1170 return false;
1171 }
1172
1173 private boolean jj_3R_113() {
1174 if (jj_scan_token(87)) {
1175 return true;
1176 }
1177 return false;
1178 }
1179
1180 private boolean jj_3R_114() {
1181 if (jj_3R_15()) {
1182 return true;
1183 }
1184 return false;
1185 }
1186
1187 private boolean jj_3R_115() {
1188 if (jj_3R_117()) {
1189 return true;
1190 }
1191 Token xsp;
1192 while (true) {
1193 xsp = jj_scanpos;
1194 if (jj_3R_118()) {
1195 jj_scanpos = xsp;
1196 break;
1197 }
1198 }
1199 return false;
1200 }
1201
1202 private boolean jj_3R_116() {
1203 Token xsp;
1204 xsp = jj_scanpos;
1205 if (jj_3R_119()) {
1206 jj_scanpos = xsp;
1207 if (jj_3R_120()) {
1208 return true;
1209 }
1210 }
1211 return false;
1212 }
1213
1214 private boolean jj_3R_117() {
1215 if (jj_3R_121()) {
1216 return true;
1217 }
1218 Token xsp;
1219 while (true) {
1220 xsp = jj_scanpos;
1221 if (jj_3R_122()) {
1222 jj_scanpos = xsp;
1223 break;
1224 }
1225 }
1226 return false;
1227 }
1228
1229 private boolean jj_3R_118() {
1230 Token xsp;
1231 xsp = jj_scanpos;
1232 if (jj_3R_123()) {
1233 jj_scanpos = xsp;
1234 if (jj_3R_124()) {
1235 jj_scanpos = xsp;
1236 if (jj_3R_125()) {
1237 jj_scanpos = xsp;
1238 if (jj_3R_126()) {
1239 return true;
1240 }
1241 }
1242 }
1243 }
1244 return false;
1245 }
1246
1247 private boolean jj_3R_119() {
1248 if (jj_scan_token(EQ)) {
1249 return true;
1250 }
1251 if (jj_3R_115()) {
1252 return true;
1253 }
1254 return false;
1255 }
1256
1257 private boolean jj_3R_120() {
1258 if (jj_scan_token(NEQ)) {
1259 return true;
1260 }
1261 if (jj_3R_115()) {
1262 return true;
1263 }
1264 return false;
1265 }
1266
1267 private boolean jj_3R_121() {
1268 if (jj_3R_127()) {
1269 return true;
1270 }
1271 Token xsp;
1272 while (true) {
1273 xsp = jj_scanpos;
1274 if (jj_3R_128()) {
1275 jj_scanpos = xsp;
1276 break;
1277 }
1278 }
1279 return false;
1280 }
1281
1282 private boolean jj_3R_122() {
1283 if (jj_scan_token(PLUS)) {
1284 return true;
1285 }
1286 if (jj_3R_121()) {
1287 return true;
1288 }
1289 return false;
1290 }
1291
1292 private boolean jj_3R_123() {
1293 if (jj_scan_token(LT)) {
1294 return true;
1295 }
1296 if (jj_3R_117()) {
1297 return true;
1298 }
1299 return false;
1300 }
1301
1302 private boolean jj_3R_124() {
1303 if (jj_scan_token(GT)) {
1304 return true;
1305 }
1306 if (jj_3R_117()) {
1307 return true;
1308 }
1309 return false;
1310 }
1311
1312 private boolean jj_3R_125() {
1313 if (jj_scan_token(LTE)) {
1314 return true;
1315 }
1316 if (jj_3R_117()) {
1317 return true;
1318 }
1319 return false;
1320 }
1321
1322 private boolean jj_3R_126() {
1323 if (jj_scan_token(GTE)) {
1324 return true;
1325 }
1326 if (jj_3R_117()) {
1327 return true;
1328 }
1329 return false;
1330 }
1331
1332 private boolean jj_3R_127() {
1333 if (jj_3R_129()) {
1334 return true;
1335 }
1336 Token xsp;
1337 while (true) {
1338 xsp = jj_scanpos;
1339 if (jj_3R_130()) {
1340 jj_scanpos = xsp;
1341 break;
1342 }
1343 }
1344 return false;
1345 }
1346
1347 private boolean jj_3R_128() {
1348 if (jj_scan_token(MINUS)) {
1349 return true;
1350 }
1351 if (jj_3R_127()) {
1352 return true;
1353 }
1354 return false;
1355 }
1356
1357 private boolean jj_3R_129() {
1358 Token xsp;
1359 xsp = jj_scanpos;
1360 if (jj_3R_131()) {
1361 jj_scanpos = xsp;
1362 if (jj_3R_132()) {
1363 return true;
1364 }
1365 }
1366 return false;
1367 }
1368
1369 private boolean jj_3R_130() {
1370 Token xsp;
1371 xsp = jj_scanpos;
1372 if (jj_3R_133()) {
1373 jj_scanpos = xsp;
1374 if (jj_3R_134()) {
1375 jj_scanpos = xsp;
1376 if (jj_3R_135()) {
1377 return true;
1378 }
1379 }
1380 }
1381 return false;
1382 }
1383
1384 private boolean jj_3R_131() {
1385 if (jj_3R_136()) {
1386 return true;
1387 }
1388 return false;
1389 }
1390
1391 private boolean jj_3R_132() {
1392 if (jj_scan_token(MINUS)) {
1393 return true;
1394 }
1395 if (jj_3R_129()) {
1396 return true;
1397 }
1398 return false;
1399 }
1400
1401 private boolean jj_3R_133() {
1402 if (jj_scan_token(89)) {
1403 return true;
1404 }
1405 if (jj_3R_129()) {
1406 return true;
1407 }
1408 return false;
1409 }
1410
1411 private boolean jj_3R_134() {
1412 if (jj_scan_token(DIV)) {
1413 return true;
1414 }
1415 if (jj_3R_129()) {
1416 return true;
1417 }
1418 return false;
1419 }
1420
1421 private boolean jj_3R_135() {
1422 if (jj_scan_token(MOD)) {
1423 return true;
1424 }
1425 if (jj_3R_129()) {
1426 return true;
1427 }
1428 return false;
1429 }
1430
1431 private boolean jj_3R_136() {
1432 if (jj_3R_137()) {
1433 return true;
1434 }
1435 Token xsp;
1436 while (true) {
1437 xsp = jj_scanpos;
1438 if (jj_3R_138()) {
1439 jj_scanpos = xsp;
1440 break;
1441 }
1442 }
1443 return false;
1444 }
1445
1446 private boolean jj_3R_137() {
1447 Token xsp;
1448 xsp = jj_scanpos;
1449 if (jj_3R_139()) {
1450 jj_scanpos = xsp;
1451 if (jj_3R_140()) {
1452 return true;
1453 }
1454 }
1455 return false;
1456 }
1457
1458 private boolean jj_3R_138() {
1459 if (jj_scan_token(UNION)) {
1460 return true;
1461 }
1462 if (jj_3R_137()) {
1463 return true;
1464 }
1465 return false;
1466 }
1467
1468 private boolean jj_3R_139() {
1469 if (jj_3R_141()) {
1470 return true;
1471 }
1472 return false;
1473 }
1474
1475 private boolean jj_3R_140() {
1476 if (jj_3R_142()) {
1477 return true;
1478 }
1479 return false;
1480 }
1481
1482 private boolean jj_3R_141() {
1483 if (jj_3R_19()) {
1484 return true;
1485 }
1486 Token xsp;
1487 while (true) {
1488 xsp = jj_scanpos;
1489 if (jj_3R_143()) {
1490 jj_scanpos = xsp;
1491 break;
1492 }
1493 }
1494 while (true) {
1495 xsp = jj_scanpos;
1496 if (jj_3R_144()) {
1497 jj_scanpos = xsp;
1498 break;
1499 }
1500 }
1501 return false;
1502 }
1503
1504 private boolean jj_3R_142() {
1505 Token xsp;
1506 xsp = jj_scanpos;
1507 if (jj_3R_145()) {
1508 jj_scanpos = xsp;
1509 if (jj_3R_146()) {
1510 return true;
1511 }
1512 }
1513 return false;
1514 }
1515
1516 private boolean jj_3R_143() {
1517 if (jj_3R_77()) {
1518 return true;
1519 }
1520 return false;
1521 }
1522
1523 private boolean jj_3R_144() {
1524 if (jj_3R_16()) {
1525 return true;
1526 }
1527 return false;
1528 }
1529
1530 private boolean jj_3R_145() {
1531 if (jj_3R_147()) {
1532 return true;
1533 }
1534 return false;
1535 }
1536
1537 private boolean jj_3R_146() {
1538 if (jj_3R_148()) {
1539 return true;
1540 }
1541 return false;
1542 }
1543
1544 private boolean jj_3R_147() {
1545 if (jj_3R_22()) {
1546 return true;
1547 }
1548 Token xsp;
1549 while (true) {
1550 xsp = jj_scanpos;
1551 if (jj_3R_149()) {
1552 jj_scanpos = xsp;
1553 break;
1554 }
1555 }
1556 return false;
1557 }
1558
1559 private boolean jj_3R_148() {
1560 Token xsp;
1561 xsp = jj_scanpos;
1562 if (jj_3R_150()) {
1563 jj_scanpos = xsp;
1564 if (jj_scan_token(6)) {
1565 return true;
1566 }
1567 }
1568 return false;
1569 }
1570
1571 private boolean jj_3R_149() {
1572 if (jj_3R_16()) {
1573 return true;
1574 }
1575 return false;
1576 }
1577
1578 private boolean jj_3R_15() {
1579 Token xsp;
1580 xsp = jj_scanpos;
1581 if (jj_3R_20()) {
1582 jj_scanpos = xsp;
1583 if (jj_scan_token(31)) {
1584 jj_scanpos = xsp;
1585 if (jj_scan_token(32)) {
1586 jj_scanpos = xsp;
1587 if (jj_scan_token(33)) {
1588 jj_scanpos = xsp;
1589 if (jj_scan_token(34)) {
1590 jj_scanpos = xsp;
1591 if (jj_scan_token(48)) {
1592 jj_scanpos = xsp;
1593 if (jj_scan_token(49)) {
1594 jj_scanpos = xsp;
1595 if (jj_scan_token(50)) {
1596 jj_scanpos = xsp;
1597 if (jj_scan_token(51)) {
1598 jj_scanpos = xsp;
1599 if (jj_scan_token(53)) {
1600 jj_scanpos = xsp;
1601 if (jj_scan_token(54)) {
1602 jj_scanpos = xsp;
1603 if (jj_scan_token(55)) {
1604 jj_scanpos = xsp;
1605 if (jj_scan_token(56)) {
1606 jj_scanpos = xsp;
1607 if (jj_scan_token(57)) {
1608 jj_scanpos = xsp;
1609 if (jj_scan_token(58)) {
1610 jj_scanpos = xsp;
1611 if (jj_scan_token(59)) {
1612 jj_scanpos = xsp;
1613 if (jj_scan_token(60)) {
1614 jj_scanpos = xsp;
1615 if (jj_scan_token(61)) {
1616 jj_scanpos = xsp;
1617 if (jj_scan_token(62)) {
1618 jj_scanpos = xsp;
1619 if (jj_scan_token(63)) {
1620 jj_scanpos = xsp;
1621 if (jj_scan_token(64)) {
1622 jj_scanpos = xsp;
1623 if (jj_scan_token(65)) {
1624 jj_scanpos = xsp;
1625 if (jj_scan_token(66)) {
1626 jj_scanpos = xsp;
1627 if (jj_scan_token(67)) {
1628 jj_scanpos = xsp;
1629 if (jj_scan_token(68)) {
1630 jj_scanpos = xsp;
1631 if (jj_scan_token(69)) {
1632 jj_scanpos = xsp;
1633 if (jj_scan_token(70)) {
1634 jj_scanpos = xsp;
1635 if (jj_scan_token(71)) {
1636 jj_scanpos = xsp;
1637 if (jj_scan_token(72)) {
1638 jj_scanpos = xsp;
1639 if (jj_scan_token(73)) {
1640 jj_scanpos = xsp;
1641 if (jj_scan_token(74)) {
1642 jj_scanpos = xsp;
1643 if (jj_scan_token(75)) {
1644 jj_scanpos = xsp;
1645 if (jj_scan_token(76)) {
1646 jj_scanpos = xsp;
1647 if (jj_scan_token(
1648 77)) {
1649 jj_scanpos = xsp;
1650 if (jj_scan_token(
1651 52)) {
1652 jj_scanpos = xsp;
1653 if (jj_scan_token(
1654 78)) {
1655 return true;
1656 }
1657 }
1658 }
1659 }
1660 }
1661 }
1662 }
1663 }
1664 }
1665 }
1666 }
1667 }
1668 }
1669 }
1670 }
1671 }
1672 }
1673 }
1674 }
1675 }
1676 }
1677 }
1678 }
1679 }
1680 }
1681 }
1682 }
1683 }
1684 }
1685 }
1686 }
1687 }
1688 }
1689 }
1690 }
1691 }
1692 return false;
1693 }
1694
1695 private boolean jj_3R_150() {
1696 if (jj_3R_16()) {
1697 return true;
1698 }
1699 Token xsp;
1700 while (true) {
1701 xsp = jj_scanpos;
1702 if (jj_3R_151()) {
1703 jj_scanpos = xsp;
1704 break;
1705 }
1706 }
1707 return false;
1708 }
1709
1710 private boolean jj_3R_151() {
1711 if (jj_3R_16()) {
1712 return true;
1713 }
1714 return false;
1715 }
1716
1717 private boolean jj_3R_16() {
1718 Token xsp;
1719 xsp = jj_scanpos;
1720 if (jj_scan_token(6)) {
1721 jj_scanpos = xsp;
1722 if (jj_3R_21()) {
1723 return true;
1724 }
1725 }
1726 if (jj_3R_22()) {
1727 return true;
1728 }
1729 return false;
1730 }
1731
1732 private boolean jj_3R_17() {
1733 Token xsp;
1734 xsp = jj_scanpos;
1735 if (jj_3R_23()) {
1736 jj_scanpos = xsp;
1737 if (jj_3R_24()) {
1738 jj_scanpos = xsp;
1739 if (jj_3R_25()) {
1740 jj_scanpos = xsp;
1741 if (jj_3R_26()) {
1742 return true;
1743 }
1744 }
1745 }
1746 }
1747 return false;
1748 }
1749
1750 private boolean jj_3R_18() {
1751 Token xsp;
1752 xsp = jj_scanpos;
1753 if (jj_3R_27()) {
1754 jj_scanpos = xsp;
1755 if (jj_3R_28()) {
1756 jj_scanpos = xsp;
1757 if (jj_3R_29()) {
1758 jj_scanpos = xsp;
1759 if (jj_3R_30()) {
1760 jj_scanpos = xsp;
1761 if (jj_3R_31()) {
1762 jj_scanpos = xsp;
1763 if (jj_3R_32()) {
1764 jj_scanpos = xsp;
1765 if (jj_3R_33()) {
1766 jj_scanpos = xsp;
1767 if (jj_3R_34()) {
1768 jj_scanpos = xsp;
1769 if (jj_3R_35()) {
1770 jj_scanpos = xsp;
1771 if (jj_3R_36()) {
1772 jj_scanpos = xsp;
1773 if (jj_3R_37()) {
1774 jj_scanpos = xsp;
1775 if (jj_3R_38()) {
1776 jj_scanpos = xsp;
1777 if (jj_3R_39()) {
1778 jj_scanpos = xsp;
1779 if (jj_3R_40()) {
1780 jj_scanpos = xsp;
1781 if (jj_3R_41()) {
1782 jj_scanpos = xsp;
1783 if (jj_3R_42()) {
1784 jj_scanpos = xsp;
1785 if (jj_3R_43()) {
1786 jj_scanpos = xsp;
1787 if (jj_3R_44()) {
1788 jj_scanpos = xsp;
1789 if (jj_3R_45()) {
1790 jj_scanpos = xsp;
1791 if (jj_3R_46()) {
1792 jj_scanpos = xsp;
1793 if (jj_3R_47()) {
1794 jj_scanpos = xsp;
1795 if (jj_3R_48()) {
1796 jj_scanpos = xsp;
1797 if (jj_3R_49()) {
1798 jj_scanpos = xsp;
1799 if (jj_3R_50()) {
1800 jj_scanpos = xsp;
1801 if (jj_3R_51()) {
1802 jj_scanpos = xsp;
1803 if (jj_3R_52()) {
1804 jj_scanpos = xsp;
1805 if (jj_3R_53()) {
1806 jj_scanpos = xsp;
1807 if (jj_3R_54()) {
1808 jj_scanpos = xsp;
1809 if (jj_3R_55()) {
1810 jj_scanpos = xsp;
1811 if (jj_3R_56()) {
1812 jj_scanpos = xsp;
1813 if (jj_3R_57()) {
1814 return true;
1815 }
1816 }
1817 }
1818 }
1819 }
1820 }
1821 }
1822 }
1823 }
1824 }
1825 }
1826 }
1827 }
1828 }
1829 }
1830 }
1831 }
1832 }
1833 }
1834 }
1835 }
1836 }
1837 }
1838 }
1839 }
1840 }
1841 }
1842 }
1843 }
1844 }
1845 }
1846 return false;
1847 }
1848
1849 private boolean jj_3R_19() {
1850 Token xsp;
1851 xsp = jj_scanpos;
1852 if (jj_3R_58()) {
1853 jj_scanpos = xsp;
1854 if (jj_3R_59()) {
1855 jj_scanpos = xsp;
1856 if (jj_3R_60()) {
1857 jj_scanpos = xsp;
1858 if (jj_3R_61()) {
1859 jj_scanpos = xsp;
1860 if (jj_3R_62()) {
1861 jj_scanpos = xsp;
1862 if (jj_3R_63()) {
1863 return true;
1864 }
1865 }
1866 }
1867 }
1868 }
1869 }
1870 return false;
1871 }
1872
1873 private boolean jj_3R_20() {
1874 if (jj_3R_64()) {
1875 return true;
1876 }
1877 return false;
1878 }
1879
1880 private boolean jj_3R_21() {
1881 if (jj_scan_token(SLASHSLASH)) {
1882 return true;
1883 }
1884 return false;
1885 }
1886
1887 private boolean jj_3R_22() {
1888 Token xsp;
1889 xsp = jj_scanpos;
1890 if (jj_3R_65()) {
1891 jj_scanpos = xsp;
1892 if (jj_3R_66()) {
1893 jj_scanpos = xsp;
1894 if (jj_3R_67()) {
1895 return true;
1896 }
1897 }
1898 }
1899 while (true) {
1900 xsp = jj_scanpos;
1901 if (jj_3R_68()) {
1902 jj_scanpos = xsp;
1903 break;
1904 }
1905 }
1906 return false;
1907 }
1908
1909 private boolean jj_3R_23() {
1910 if (jj_scan_token(TEXT)) {
1911 return true;
1912 }
1913 return false;
1914 }
1915
1916 private boolean jj_3R_24() {
1917 if (jj_scan_token(NODE)) {
1918 return true;
1919 }
1920 return false;
1921 }
1922
1923 private boolean jj_3R_25() {
1924 if (jj_scan_token(COMMENT)) {
1925 return true;
1926 }
1927 return false;
1928 }
1929
1930 private boolean jj_3R_26() {
1931 if (jj_scan_token(PI)) {
1932 return true;
1933 }
1934 return false;
1935 }
1936
1937 private boolean jj_3R_27() {
1938 if (jj_scan_token(FUNCTION_LAST)) {
1939 return true;
1940 }
1941 return false;
1942 }
1943
1944 private boolean jj_3R_28() {
1945 if (jj_scan_token(FUNCTION_POSITION)) {
1946 return true;
1947 }
1948 return false;
1949 }
1950
1951 private boolean jj_3R_29() {
1952 if (jj_scan_token(FUNCTION_COUNT)) {
1953 return true;
1954 }
1955 return false;
1956 }
1957
1958 private boolean jj_3R_30() {
1959 if (jj_scan_token(FUNCTION_ID)) {
1960 return true;
1961 }
1962 return false;
1963 }
1964
1965 private boolean jj_3R_31() {
1966 if (jj_scan_token(FUNCTION_LOCAL_NAME)) {
1967 return true;
1968 }
1969 return false;
1970 }
1971
1972 private boolean jj_3R_32() {
1973 if (jj_scan_token(FUNCTION_NAMESPACE_URI)) {
1974 return true;
1975 }
1976 return false;
1977 }
1978
1979 private boolean jj_3R_33() {
1980 if (jj_scan_token(FUNCTION_NAME)) {
1981 return true;
1982 }
1983 return false;
1984 }
1985
1986 private boolean jj_3R_34() {
1987 if (jj_scan_token(FUNCTION_STRING)) {
1988 return true;
1989 }
1990 return false;
1991 }
1992
1993 private boolean jj_3R_35() {
1994 if (jj_scan_token(FUNCTION_CONCAT)) {
1995 return true;
1996 }
1997 return false;
1998 }
1999
2000 private boolean jj_3R_36() {
2001 if (jj_scan_token(FUNCTION_STARTS_WITH)) {
2002 return true;
2003 }
2004 return false;
2005 }
2006
2007 private boolean jj_3R_37() {
2008 if (jj_scan_token(FUNCTION_ENDS_WITH)) {
2009 return true;
2010 }
2011 return false;
2012 }
2013
2014 private boolean jj_3R_38() {
2015 if (jj_scan_token(FUNCTION_CONTAINS)) {
2016 return true;
2017 }
2018 return false;
2019 }
2020
2021 private boolean jj_3R_39() {
2022 if (jj_scan_token(FUNCTION_SUBSTRING_BEFORE)) {
2023 return true;
2024 }
2025 return false;
2026 }
2027
2028 private boolean jj_3R_40() {
2029 if (jj_scan_token(FUNCTION_SUBSTRING_AFTER)) {
2030 return true;
2031 }
2032 return false;
2033 }
2034
2035 private boolean jj_3R_41() {
2036 if (jj_scan_token(FUNCTION_SUBSTRING)) {
2037 return true;
2038 }
2039 return false;
2040 }
2041
2042 private boolean jj_3R_42() {
2043 if (jj_scan_token(FUNCTION_STRING_LENGTH)) {
2044 return true;
2045 }
2046 return false;
2047 }
2048
2049 private boolean jj_3R_43() {
2050 if (jj_scan_token(FUNCTION_NORMALIZE_SPACE)) {
2051 return true;
2052 }
2053 return false;
2054 }
2055
2056 private boolean jj_3R_44() {
2057 if (jj_scan_token(FUNCTION_TRANSLATE)) {
2058 return true;
2059 }
2060 return false;
2061 }
2062
2063 private boolean jj_3R_45() {
2064 if (jj_scan_token(FUNCTION_BOOLEAN)) {
2065 return true;
2066 }
2067 return false;
2068 }
2069
2070 private boolean jj_3R_46() {
2071 if (jj_scan_token(FUNCTION_NOT)) {
2072 return true;
2073 }
2074 return false;
2075 }
2076
2077 private boolean jj_3R_47() {
2078 if (jj_scan_token(FUNCTION_TRUE)) {
2079 return true;
2080 }
2081 return false;
2082 }
2083
2084 private boolean jj_3R_48() {
2085 if (jj_scan_token(FUNCTION_FALSE)) {
2086 return true;
2087 }
2088 return false;
2089 }
2090
2091 private boolean jj_3R_49() {
2092 if (jj_scan_token(FUNCTION_NULL)) {
2093 return true;
2094 }
2095 return false;
2096 }
2097
2098 private boolean jj_3R_50() {
2099 if (jj_scan_token(FUNCTION_LANG)) {
2100 return true;
2101 }
2102 return false;
2103 }
2104
2105 private boolean jj_3R_51() {
2106 if (jj_scan_token(FUNCTION_NUMBER)) {
2107 return true;
2108 }
2109 return false;
2110 }
2111
2112 private boolean jj_3R_52() {
2113 if (jj_scan_token(FUNCTION_SUM)) {
2114 return true;
2115 }
2116 return false;
2117 }
2118
2119 private boolean jj_3R_53() {
2120 if (jj_scan_token(FUNCTION_FLOOR)) {
2121 return true;
2122 }
2123 return false;
2124 }
2125
2126 private boolean jj_3R_54() {
2127 if (jj_scan_token(FUNCTION_CEILING)) {
2128 return true;
2129 }
2130 return false;
2131 }
2132
2133 private boolean jj_3R_55() {
2134 if (jj_scan_token(FUNCTION_ROUND)) {
2135 return true;
2136 }
2137 return false;
2138 }
2139
2140 private boolean jj_3R_56() {
2141 if (jj_scan_token(FUNCTION_KEY)) {
2142 return true;
2143 }
2144 return false;
2145 }
2146
2147 private boolean jj_3R_57() {
2148 if (jj_scan_token(FUNCTION_FORMAT_NUMBER)) {
2149 return true;
2150 }
2151 return false;
2152 }
2153
2154 private boolean jj_3R_58() {
2155 if (jj_3R_69()) {
2156 return true;
2157 }
2158 return false;
2159 }
2160
2161 private boolean jj_3R_59() {
2162 if (jj_scan_token(81)) {
2163 return true;
2164 }
2165 if (jj_3R_70()) {
2166 return true;
2167 }
2168 if (jj_scan_token(82)) {
2169 return true;
2170 }
2171 return false;
2172 }
2173
2174 private boolean jj_3R_60() {
2175 if (jj_scan_token(Literal)) {
2176 return true;
2177 }
2178 return false;
2179 }
2180
2181 private boolean jj_3R_61() {
2182 if (jj_scan_token(Number)) {
2183 return true;
2184 }
2185 return false;
2186 }
2187
2188 private boolean jj_3R_62() {
2189 if (jj_3R_71()) {
2190 return true;
2191 }
2192 return false;
2193 }
2194
2195 private boolean jj_3R_63() {
2196 if (jj_3R_72()) {
2197 return true;
2198 }
2199 return false;
2200 }
2201
2202 private boolean jj_3R_64() {
2203 Token xsp;
2204 xsp = jj_scanpos;
2205 if (jj_scan_token(79)) {
2206 jj_scanpos = xsp;
2207 if (jj_scan_token(27)) {
2208 jj_scanpos = xsp;
2209 if (jj_scan_token(28)) {
2210 jj_scanpos = xsp;
2211 if (jj_scan_token(29)) {
2212 jj_scanpos = xsp;
2213 if (jj_scan_token(30)) {
2214 return true;
2215 }
2216 }
2217 }
2218 }
2219 }
2220 return false;
2221 }
2222
2223 private boolean jj_3R_65() {
2224 if (jj_3R_73()) {
2225 return true;
2226 }
2227 Token xsp;
2228 xsp = jj_scanpos;
2229 if (jj_3R_74()) {
2230 jj_scanpos = xsp;
2231 if (jj_3R_75()) {
2232 jj_scanpos = xsp;
2233 if (jj_3R_76()) {
2234 return true;
2235 }
2236 }
2237 }
2238 return false;
2239 }
2240
2241 private boolean jj_3R_66() {
2242 if (jj_scan_token(83)) {
2243 return true;
2244 }
2245 return false;
2246 }
2247
2248 private boolean jj_3R_67() {
2249 if (jj_scan_token(84)) {
2250 return true;
2251 }
2252 return false;
2253 }
2254
2255 private boolean jj_3R_68() {
2256 if (jj_3R_77()) {
2257 return true;
2258 }
2259 return false;
2260 }
2261
2262 private boolean jj_3R_69() {
2263 if (jj_scan_token(VARIABLE)) {
2264 return true;
2265 }
2266 if (jj_3R_78()) {
2267 return true;
2268 }
2269 return false;
2270 }
2271
2272 private boolean jj_3R_70() {
2273 if (jj_3R_79()) {
2274 return true;
2275 }
2276 return false;
2277 }
2278
2279 private boolean jj_3R_71() {
2280 if (jj_3R_18()) {
2281 return true;
2282 }
2283 if (jj_3R_80()) {
2284 return true;
2285 }
2286 return false;
2287 }
2288
2289 private boolean jj_3R_72() {
2290 if (jj_3R_81()) {
2291 return true;
2292 }
2293 if (jj_3R_80()) {
2294 return true;
2295 }
2296 return false;
2297 }
2298
2299 private boolean jj_3R_73() {
2300 Token xsp;
2301 xsp = jj_scanpos;
2302 if (jj_3R_82()) {
2303 jj_scanpos = xsp;
2304 if (jj_3R_83()) {
2305 return true;
2306 }
2307 }
2308 return false;
2309 }
2310
2311 private boolean jj_3R_74() {
2312 if (jj_3R_17()) {
2313 return true;
2314 }
2315 if (jj_scan_token(81)) {
2316 return true;
2317 }
2318 if (jj_scan_token(82)) {
2319 return true;
2320 }
2321 return false;
2322 }
2323
2324 private boolean jj_3R_75() {
2325 if (jj_scan_token(PI)) {
2326 return true;
2327 }
2328 if (jj_scan_token(81)) {
2329 return true;
2330 }
2331 if (jj_scan_token(Literal)) {
2332 return true;
2333 }
2334 if (jj_scan_token(82)) {
2335 return true;
2336 }
2337 return false;
2338 }
2339
2340 private boolean jj_3R_76() {
2341 if (jj_3R_84()) {
2342 return true;
2343 }
2344 return false;
2345 }
2346
2347 private boolean jj_3R_77() {
2348 if (jj_scan_token(85)) {
2349 return true;
2350 }
2351 if (jj_3R_70()) {
2352 return true;
2353 }
2354 if (jj_scan_token(86)) {
2355 return true;
2356 }
2357 return false;
2358 }
2359
2360 private boolean jj_3R_78() {
2361 if (jj_3R_15()) {
2362 return true;
2363 }
2364 Token xsp;
2365 xsp = jj_scanpos;
2366 if (jj_3R_85()) {
2367 jj_scanpos = xsp;
2368 }
2369 return false;
2370 }
2371
2372 private boolean jj_3R_79() {
2373 if (jj_3R_86()) {
2374 return true;
2375 }
2376 Token xsp;
2377 while (true) {
2378 xsp = jj_scanpos;
2379 if (jj_3R_87()) {
2380 jj_scanpos = xsp;
2381 break;
2382 }
2383 }
2384 return false;
2385 }
2386
2387 private boolean jj_3R_80() {
2388 if (jj_scan_token(81)) {
2389 return true;
2390 }
2391 Token xsp;
2392 xsp = jj_scanpos;
2393 if (jj_3R_88()) {
2394 jj_scanpos = xsp;
2395 }
2396 if (jj_scan_token(82)) {
2397 return true;
2398 }
2399 return false;
2400 }
2401
2402 private boolean jj_3R_81() {
2403 if (jj_3R_89()) {
2404 return true;
2405 }
2406 return false;
2407 }
2408
2409 private boolean jj_3R_82() {
2410 if (jj_3R_90()) {
2411 return true;
2412 }
2413 return false;
2414 }
2415
2416 private boolean jj_3R_83() {
2417 if (jj_3R_91()) {
2418 return true;
2419 }
2420 return false;
2421 }
2422
2423 private boolean jj_3R_84() {
2424 Token xsp;
2425 xsp = jj_scanpos;
2426 if (jj_scan_token(89)) {
2427 jj_scanpos = xsp;
2428 if (jj_3R_92()) {
2429 return true;
2430 }
2431 }
2432 xsp = jj_scanpos;
2433 if (jj_3R_93()) {
2434 jj_scanpos = xsp;
2435 }
2436 return false;
2437 }
2438
2439 private boolean jj_3R_85() {
2440 if (jj_scan_token(80)) {
2441 return true;
2442 }
2443 if (jj_3R_15()) {
2444 return true;
2445 }
2446 return false;
2447 }
2448
2449 private boolean jj_3R_86() {
2450 if (jj_3R_94()) {
2451 return true;
2452 }
2453 Token xsp;
2454 while (true) {
2455 xsp = jj_scanpos;
2456 if (jj_3R_95()) {
2457 jj_scanpos = xsp;
2458 break;
2459 }
2460 }
2461 return false;
2462 }
2463
2464 private boolean jj_3R_87() {
2465 if (jj_scan_token(OR)) {
2466 return true;
2467 }
2468 if (jj_3R_86()) {
2469 return true;
2470 }
2471 return false;
2472 }
2473
2474 private boolean jj_3R_88() {
2475 if (jj_3R_96()) {
2476 return true;
2477 }
2478 Token xsp;
2479 while (true) {
2480 xsp = jj_scanpos;
2481 if (jj_3R_97()) {
2482 jj_scanpos = xsp;
2483 break;
2484 }
2485 }
2486 return false;
2487 }
2488
2489 private boolean jj_3R_89() {
2490 Token xsp;
2491 xsp = jj_scanpos;
2492 if (jj_3R_98()) {
2493 jj_scanpos = xsp;
2494 if (jj_3R_99()) {
2495 return true;
2496 }
2497 }
2498 return false;
2499 }
2500
2501 private boolean jj_3R_90() {
2502 Token xsp;
2503 xsp = jj_scanpos;
2504 if (jj_3R_100()) {
2505 jj_scanpos = xsp;
2506 if (jj_3R_101()) {
2507 jj_scanpos = xsp;
2508 if (jj_3R_102()) {
2509 jj_scanpos = xsp;
2510 if (jj_3R_103()) {
2511 jj_scanpos = xsp;
2512 if (jj_3R_104()) {
2513 jj_scanpos = xsp;
2514 if (jj_3R_105()) {
2515 jj_scanpos = xsp;
2516 if (jj_3R_106()) {
2517 jj_scanpos = xsp;
2518 if (jj_3R_107()) {
2519 jj_scanpos = xsp;
2520 if (jj_3R_108()) {
2521 jj_scanpos = xsp;
2522 if (jj_3R_109()) {
2523 jj_scanpos = xsp;
2524 if (jj_3R_110()) {
2525 jj_scanpos = xsp;
2526 if (jj_3R_111()) {
2527 jj_scanpos = xsp;
2528 if (jj_3R_112()) {
2529 return true;
2530 }
2531 }
2532 }
2533 }
2534 }
2535 }
2536 }
2537 }
2538 }
2539 }
2540 }
2541 }
2542 }
2543 return false;
2544 }
2545
2546 private boolean jj_3R_91() {
2547 Token xsp;
2548 xsp = jj_scanpos;
2549 if (jj_3R_113()) {
2550 jj_scanpos = xsp;
2551 }
2552 return false;
2553 }
2554
2555 private boolean jj_3R_92() {
2556 if (jj_3R_15()) {
2557 return true;
2558 }
2559 return false;
2560 }
2561
2562 private boolean jj_3R_93() {
2563 if (jj_scan_token(80)) {
2564 return true;
2565 }
2566 Token xsp;
2567 xsp = jj_scanpos;
2568 if (jj_scan_token(89)) {
2569 jj_scanpos = xsp;
2570 if (jj_3R_114()) {
2571 return true;
2572 }
2573 }
2574 return false;
2575 }
2576
2577 private boolean jj_3R_94() {
2578 if (jj_3R_115()) {
2579 return true;
2580 }
2581 Token xsp;
2582 while (true) {
2583 xsp = jj_scanpos;
2584 if (jj_3R_116()) {
2585 jj_scanpos = xsp;
2586 break;
2587 }
2588 }
2589 return false;
2590 }
2591
2592 private boolean jj_3R_95() {
2593 if (jj_scan_token(AND)) {
2594 return true;
2595 }
2596 if (jj_3R_94()) {
2597 return true;
2598 }
2599 return false;
2600 }
2601
2602 private boolean jj_3R_96() {
2603 if (jj_3R_70()) {
2604 return true;
2605 }
2606 return false;
2607 }
2608
2609 private boolean jj_3R_97() {
2610 if (jj_scan_token(88)) {
2611 return true;
2612 }
2613 if (jj_3R_96()) {
2614 return true;
2615 }
2616 return false;
2617 }
2618
2619 private boolean jj_3R_98() {
2620 if (jj_3R_15()) {
2621 return true;
2622 }
2623 if (jj_scan_token(80)) {
2624 return true;
2625 }
2626 if (jj_3R_15()) {
2627 return true;
2628 }
2629 return false;
2630 }
2631
2632 private boolean jj_3R_99() {
2633 if (jj_3R_64()) {
2634 return true;
2635 }
2636 return false;
2637 }
2638
2639 private void jj_add_error_token(final int kind, final int pos) {
2640 if (pos >= 100) {
2641 return;
2642 }
2643 if (pos == jj_endpos + 1) {
2644 jj_lasttokens[jj_endpos++] = kind;
2645 } else if (jj_endpos != 0) {
2646 jj_expentry = new int[jj_endpos];
2647 for (int i = 0; i < jj_endpos; i++) {
2648 jj_expentry[i] = jj_lasttokens[i];
2649 }
2650 boolean exists = false;
2651 for (final java.util.Enumeration e = jj_expentries.elements(); e.hasMoreElements();) {
2652 final int[] oldentry = (int[]) e.nextElement();
2653 if (oldentry.length == jj_expentry.length) {
2654 exists = true;
2655 for (int i = 0; i < jj_expentry.length; i++) {
2656 if (oldentry[i] != jj_expentry[i]) {
2657 exists = false;
2658 break;
2659 }
2660 }
2661 if (exists) {
2662 break;
2663 }
2664 }
2665 }
2666 if (!exists) {
2667 jj_expentries.addElement(jj_expentry);
2668 }
2669 if (pos != 0) {
2670 jj_lasttokens[(jj_endpos = pos) - 1] = kind;
2671 }
2672 }
2673 }
2674
2675 private Token jj_consume_token(final int kind) throws ParseException {
2676 final Token oldToken = token;
2677 if ((token = jj_nt).next != null) {
2678 jj_nt = jj_nt.next;
2679 } else {
2680 jj_nt = jj_nt.next = token_source.getNextToken();
2681 }
2682 if (token.kind == kind) {
2683 jj_gen++;
2684 if (++jj_gc > 100) {
2685 jj_gc = 0;
2686 for (final JJCalls jj_2_rtn : jj_2_rtns) {
2687 JJCalls c = jj_2_rtn;
2688 while (c != null) {
2689 if (c.gen < jj_gen) {
2690 c.first = null;
2691 }
2692 c = c.next;
2693 }
2694 }
2695 }
2696 return token;
2697 }
2698 jj_nt = token;
2699 token = oldToken;
2700 jj_kind = kind;
2701 throw generateParseException();
2702 }
2703
2704 private void jj_rescan_token() {
2705 jj_rescan = true;
2706 for (int i = 0; i < 6; i++) {
2707 JJCalls p = jj_2_rtns[i];
2708 do {
2709 if (p.gen > jj_gen) {
2710 jj_la = p.arg;
2711 jj_lastpos = jj_scanpos = p.first;
2712 switch (i) {
2713 case 0:
2714 jj_3_1();
2715 break;
2716 case 1:
2717 jj_3_2();
2718 break;
2719 case 2:
2720 jj_3_3();
2721 break;
2722 case 3:
2723 jj_3_4();
2724 break;
2725 case 4:
2726 jj_3_5();
2727 break;
2728 case 5:
2729 jj_3_6();
2730 break;
2731 }
2732 }
2733 p = p.next;
2734 } while (p != null);
2735 }
2736 jj_rescan = false;
2737 }
2738
2739 private void jj_save(final int index, final int xla) {
2740 JJCalls p = jj_2_rtns[index];
2741 while (p.gen > jj_gen) {
2742 if (p.next == null) {
2743 p = p.next = new JJCalls();
2744 break;
2745 }
2746 p = p.next;
2747 }
2748 p.gen = jj_gen + xla - jj_la;
2749 p.first = token;
2750 p.arg = xla;
2751 }
2752
2753 private boolean jj_scan_token(final int kind) {
2754 if (jj_scanpos == jj_lastpos) {
2755 jj_la--;
2756 if (jj_scanpos.next == null) {
2757 jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
2758 } else {
2759 jj_lastpos = jj_scanpos = jj_scanpos.next;
2760 }
2761 } else {
2762 jj_scanpos = jj_scanpos.next;
2763 }
2764 if (jj_rescan) {
2765 int i = 0;
2766 Token tok = token;
2767 while (tok != null && tok != jj_scanpos) {
2768 i++;
2769 tok = tok.next;
2770 }
2771 if (tok != null) {
2772 jj_add_error_token(kind, i);
2773 }
2774 }
2775 if (jj_scanpos.kind != kind) {
2776 return true;
2777 }
2778 if (jj_la == 0 && jj_scanpos == jj_lastpos) {
2779 throw jj_ls;
2780 }
2781 return false;
2782 }
2783
2784
2785 final public Object LocationPath() throws ParseException {
2786 Object ex = null;
2787 switch (jj_nt.kind) {
2788 case OR:
2789 case AND:
2790 case MOD:
2791 case DIV:
2792 case NODE:
2793 case TEXT:
2794 case COMMENT:
2795 case PI:
2796 case AXIS_SELF:
2797 case AXIS_CHILD:
2798 case AXIS_PARENT:
2799 case AXIS_ANCESTOR:
2800 case AXIS_ATTRIBUTE:
2801 case AXIS_NAMESPACE:
2802 case AXIS_PRECEDING:
2803 case AXIS_FOLLOWING:
2804 case AXIS_DESCENDANT:
2805 case AXIS_ANCESTOR_OR_SELF:
2806 case AXIS_FOLLOWING_SIBLING:
2807 case AXIS_PRECEDING_SIBLING:
2808 case AXIS_DESCENDANT_OR_SELF:
2809 case FUNCTION_LAST:
2810 case FUNCTION_POSITION:
2811 case FUNCTION_COUNT:
2812 case FUNCTION_ID:
2813 case FUNCTION_KEY:
2814 case FUNCTION_LOCAL_NAME:
2815 case FUNCTION_NAMESPACE_URI:
2816 case FUNCTION_NAME:
2817 case FUNCTION_STRING:
2818 case FUNCTION_CONCAT:
2819 case FUNCTION_STARTS_WITH:
2820 case FUNCTION_ENDS_WITH:
2821 case FUNCTION_CONTAINS:
2822 case FUNCTION_SUBSTRING_BEFORE:
2823 case FUNCTION_SUBSTRING_AFTER:
2824 case FUNCTION_SUBSTRING:
2825 case FUNCTION_STRING_LENGTH:
2826 case FUNCTION_NORMALIZE_SPACE:
2827 case FUNCTION_TRANSLATE:
2828 case FUNCTION_BOOLEAN:
2829 case FUNCTION_NOT:
2830 case FUNCTION_TRUE:
2831 case FUNCTION_FALSE:
2832 case FUNCTION_NULL:
2833 case FUNCTION_LANG:
2834 case FUNCTION_NUMBER:
2835 case FUNCTION_SUM:
2836 case FUNCTION_FLOOR:
2837 case FUNCTION_CEILING:
2838 case FUNCTION_ROUND:
2839 case FUNCTION_FORMAT_NUMBER:
2840 case NCName:
2841 case 83:
2842 case 84:
2843 case 87:
2844 case 89:
2845 ex = RelativeLocationPath();
2846 break;
2847 case SLASH:
2848 case SLASHSLASH:
2849 ex = AbsoluteLocationPath();
2850 break;
2851 default:
2852 jj_la1[5] = jj_gen;
2853 jj_consume_token(-1);
2854 throw new ParseException();
2855 }
2856 {
2857 if (true) {
2858 return ex;
2859 }
2860 }
2861 throw new Error("Missing return statement in function");
2862 }
2863
2864
2865 final public void LocationStep(final ArrayList steps) throws ParseException {
2866 Object t;
2867 final Object s;
2868 switch (jj_nt.kind) {
2869 case SLASH:
2870 jj_consume_token(SLASH);
2871 break;
2872 case SLASHSLASH:
2873 jj_consume_token(SLASHSLASH);
2874
2875 t = compiler.nodeTypeTest(Compiler.NODE_TYPE_NODE);
2876 steps.add(compiler.step(Compiler.AXIS_DESCENDANT_OR_SELF, t, null));
2877 break;
2878 default:
2879 jj_la1[9] = jj_gen;
2880 jj_consume_token(-1);
2881 throw new ParseException();
2882 }
2883 NodeTest(steps);
2884 }
2885
2886
2887
2888
2889
2890 final public Object MultiplicativeExpr() throws ParseException {
2891 Object ex, r;
2892 ex = UnaryExpr();
2893 label_14: while (true) {
2894 switch (jj_nt.kind) {
2895 case MOD:
2896 case DIV:
2897 case 89:
2898 ;
2899 break;
2900 default:
2901 jj_la1[32] = jj_gen;
2902 break label_14;
2903 }
2904 switch (jj_nt.kind) {
2905 case 89:
2906 jj_consume_token(89);
2907 r = UnaryExpr();
2908 ex = compiler.multiply(ex, r);
2909 break;
2910 case DIV:
2911 jj_consume_token(DIV);
2912 r = UnaryExpr();
2913 ex = compiler.divide(ex, r);
2914 break;
2915 case MOD:
2916 jj_consume_token(MOD);
2917 r = UnaryExpr();
2918 ex = compiler.mod(ex, r);
2919 break;
2920 default:
2921 jj_la1[33] = jj_gen;
2922 jj_consume_token(-1);
2923 throw new ParseException();
2924 }
2925 }
2926 {
2927 if (true) {
2928 return ex;
2929 }
2930 }
2931 throw new Error("Missing return statement in function");
2932 }
2933
2934
2935 final public String NCName() throws ParseException {
2936 switch (jj_nt.kind) {
2937 case OR:
2938 case AND:
2939 case MOD:
2940 case DIV:
2941 case NCName:
2942 NCName_Without_CoreFunctions();
2943 break;
2944 case NODE:
2945 jj_consume_token(NODE);
2946 break;
2947 case TEXT:
2948 jj_consume_token(TEXT);
2949 break;
2950 case COMMENT:
2951 jj_consume_token(COMMENT);
2952 break;
2953 case PI:
2954 jj_consume_token(PI);
2955 break;
2956 case FUNCTION_LAST:
2957 jj_consume_token(FUNCTION_LAST);
2958 break;
2959 case FUNCTION_POSITION:
2960 jj_consume_token(FUNCTION_POSITION);
2961 break;
2962 case FUNCTION_COUNT:
2963 jj_consume_token(FUNCTION_COUNT);
2964 break;
2965 case FUNCTION_ID:
2966 jj_consume_token(FUNCTION_ID);
2967 break;
2968 case FUNCTION_LOCAL_NAME:
2969 jj_consume_token(FUNCTION_LOCAL_NAME);
2970 break;
2971 case FUNCTION_NAMESPACE_URI:
2972 jj_consume_token(FUNCTION_NAMESPACE_URI);
2973 break;
2974 case FUNCTION_NAME:
2975 jj_consume_token(FUNCTION_NAME);
2976 break;
2977 case FUNCTION_STRING:
2978 jj_consume_token(FUNCTION_STRING);
2979 break;
2980 case FUNCTION_CONCAT:
2981 jj_consume_token(FUNCTION_CONCAT);
2982 break;
2983 case FUNCTION_STARTS_WITH:
2984 jj_consume_token(FUNCTION_STARTS_WITH);
2985 break;
2986 case FUNCTION_ENDS_WITH:
2987 jj_consume_token(FUNCTION_ENDS_WITH);
2988 break;
2989 case FUNCTION_CONTAINS:
2990 jj_consume_token(FUNCTION_CONTAINS);
2991 break;
2992 case FUNCTION_SUBSTRING_BEFORE:
2993 jj_consume_token(FUNCTION_SUBSTRING_BEFORE);
2994 break;
2995 case FUNCTION_SUBSTRING_AFTER:
2996 jj_consume_token(FUNCTION_SUBSTRING_AFTER);
2997 break;
2998 case FUNCTION_SUBSTRING:
2999 jj_consume_token(FUNCTION_SUBSTRING);
3000 break;
3001 case FUNCTION_STRING_LENGTH:
3002 jj_consume_token(FUNCTION_STRING_LENGTH);
3003 break;
3004 case FUNCTION_NORMALIZE_SPACE:
3005 jj_consume_token(FUNCTION_NORMALIZE_SPACE);
3006 break;
3007 case FUNCTION_TRANSLATE:
3008 jj_consume_token(FUNCTION_TRANSLATE);
3009 break;
3010 case FUNCTION_BOOLEAN:
3011 jj_consume_token(FUNCTION_BOOLEAN);
3012 break;
3013 case FUNCTION_NOT:
3014 jj_consume_token(FUNCTION_NOT);
3015 break;
3016 case FUNCTION_TRUE:
3017 jj_consume_token(FUNCTION_TRUE);
3018 break;
3019 case FUNCTION_FALSE:
3020 jj_consume_token(FUNCTION_FALSE);
3021 break;
3022 case FUNCTION_NULL:
3023 jj_consume_token(FUNCTION_NULL);
3024 break;
3025 case FUNCTION_LANG:
3026 jj_consume_token(FUNCTION_LANG);
3027 break;
3028 case FUNCTION_NUMBER:
3029 jj_consume_token(FUNCTION_NUMBER);
3030 break;
3031 case FUNCTION_SUM:
3032 jj_consume_token(FUNCTION_SUM);
3033 break;
3034 case FUNCTION_FLOOR:
3035 jj_consume_token(FUNCTION_FLOOR);
3036 break;
3037 case FUNCTION_CEILING:
3038 jj_consume_token(FUNCTION_CEILING);
3039 break;
3040 case FUNCTION_ROUND:
3041 jj_consume_token(FUNCTION_ROUND);
3042 break;
3043 case FUNCTION_KEY:
3044 jj_consume_token(FUNCTION_KEY);
3045 break;
3046 case FUNCTION_FORMAT_NUMBER:
3047 jj_consume_token(FUNCTION_FORMAT_NUMBER);
3048 break;
3049 default:
3050 jj_la1[0] = jj_gen;
3051 jj_consume_token(-1);
3052 throw new ParseException();
3053 }
3054 {
3055 if (true) {
3056 return token.image;
3057 }
3058 }
3059 throw new Error("Missing return statement in function");
3060 }
3061
3062 final public String NCName_Without_CoreFunctions() throws ParseException {
3063 switch (jj_nt.kind) {
3064 case NCName:
3065 jj_consume_token(NCName);
3066 break;
3067 case OR:
3068 jj_consume_token(OR);
3069 break;
3070 case AND:
3071 jj_consume_token(AND);
3072 break;
3073 case MOD:
3074 jj_consume_token(MOD);
3075 break;
3076 case DIV:
3077 jj_consume_token(DIV);
3078 break;
3079 default:
3080 jj_la1[1] = jj_gen;
3081 jj_consume_token(-1);
3082 throw new ParseException();
3083 }
3084 {
3085 if (true) {
3086 return token.image;
3087 }
3088 }
3089 throw new Error("Missing return statement in function");
3090 }
3091
3092
3093 final public void NodeTest(final ArrayList steps) throws ParseException {
3094 int axis;
3095 int type = -1;
3096 String instruction = null;
3097 Object name = null;
3098 Object s;
3099 Object p;
3100 final ArrayList ps = new ArrayList();
3101 switch (jj_nt.kind) {
3102 case OR:
3103 case AND:
3104 case MOD:
3105 case DIV:
3106 case NODE:
3107 case TEXT:
3108 case COMMENT:
3109 case PI:
3110 case AXIS_SELF:
3111 case AXIS_CHILD:
3112 case AXIS_PARENT:
3113 case AXIS_ANCESTOR:
3114 case AXIS_ATTRIBUTE:
3115 case AXIS_NAMESPACE:
3116 case AXIS_PRECEDING:
3117 case AXIS_FOLLOWING:
3118 case AXIS_DESCENDANT:
3119 case AXIS_ANCESTOR_OR_SELF:
3120 case AXIS_FOLLOWING_SIBLING:
3121 case AXIS_PRECEDING_SIBLING:
3122 case AXIS_DESCENDANT_OR_SELF:
3123 case FUNCTION_LAST:
3124 case FUNCTION_POSITION:
3125 case FUNCTION_COUNT:
3126 case FUNCTION_ID:
3127 case FUNCTION_KEY:
3128 case FUNCTION_LOCAL_NAME:
3129 case FUNCTION_NAMESPACE_URI:
3130 case FUNCTION_NAME:
3131 case FUNCTION_STRING:
3132 case FUNCTION_CONCAT:
3133 case FUNCTION_STARTS_WITH:
3134 case FUNCTION_ENDS_WITH:
3135 case FUNCTION_CONTAINS:
3136 case FUNCTION_SUBSTRING_BEFORE:
3137 case FUNCTION_SUBSTRING_AFTER:
3138 case FUNCTION_SUBSTRING:
3139 case FUNCTION_STRING_LENGTH:
3140 case FUNCTION_NORMALIZE_SPACE:
3141 case FUNCTION_TRANSLATE:
3142 case FUNCTION_BOOLEAN:
3143 case FUNCTION_NOT:
3144 case FUNCTION_TRUE:
3145 case FUNCTION_FALSE:
3146 case FUNCTION_NULL:
3147 case FUNCTION_LANG:
3148 case FUNCTION_NUMBER:
3149 case FUNCTION_SUM:
3150 case FUNCTION_FLOOR:
3151 case FUNCTION_CEILING:
3152 case FUNCTION_ROUND:
3153 case FUNCTION_FORMAT_NUMBER:
3154 case NCName:
3155 case 87:
3156 case 89:
3157 axis = AxisSpecifier();
3158 if (jj_2_3(2147483647)) {
3159 type = NodeType();
3160 jj_consume_token(81);
3161 jj_consume_token(82);
3162 } else if (jj_2_4(2147483647)) {
3163 jj_consume_token(PI);
3164 jj_consume_token(81);
3165 jj_consume_token(Literal);
3166 instruction = unescape(token.image.substring(1, token.image.length() - 1));
3167 jj_consume_token(82);
3168 } else {
3169 switch (jj_nt.kind) {
3170 case OR:
3171 case AND:
3172 case MOD:
3173 case DIV:
3174 case NODE:
3175 case TEXT:
3176 case COMMENT:
3177 case PI:
3178 case FUNCTION_LAST:
3179 case FUNCTION_POSITION:
3180 case FUNCTION_COUNT:
3181 case FUNCTION_ID:
3182 case FUNCTION_KEY:
3183 case FUNCTION_LOCAL_NAME:
3184 case FUNCTION_NAMESPACE_URI:
3185 case FUNCTION_NAME:
3186 case FUNCTION_STRING:
3187 case FUNCTION_CONCAT:
3188 case FUNCTION_STARTS_WITH:
3189 case FUNCTION_ENDS_WITH:
3190 case FUNCTION_CONTAINS:
3191 case FUNCTION_SUBSTRING_BEFORE:
3192 case FUNCTION_SUBSTRING_AFTER:
3193 case FUNCTION_SUBSTRING:
3194 case FUNCTION_STRING_LENGTH:
3195 case FUNCTION_NORMALIZE_SPACE:
3196 case FUNCTION_TRANSLATE:
3197 case FUNCTION_BOOLEAN:
3198 case FUNCTION_NOT:
3199 case FUNCTION_TRUE:
3200 case FUNCTION_FALSE:
3201 case FUNCTION_NULL:
3202 case FUNCTION_LANG:
3203 case FUNCTION_NUMBER:
3204 case FUNCTION_SUM:
3205 case FUNCTION_FLOOR:
3206 case FUNCTION_CEILING:
3207 case FUNCTION_ROUND:
3208 case FUNCTION_FORMAT_NUMBER:
3209 case NCName:
3210 case 89:
3211 name = WildcardName();
3212 break;
3213 default:
3214 jj_la1[10] = jj_gen;
3215 jj_consume_token(-1);
3216 throw new ParseException();
3217 }
3218 }
3219 break;
3220 case 83:
3221 jj_consume_token(83);
3222 axis = Compiler.AXIS_SELF;
3223 type = Compiler.NODE_TYPE_NODE;
3224 break;
3225 case 84:
3226 jj_consume_token(84);
3227 axis = Compiler.AXIS_PARENT;
3228 type = Compiler.NODE_TYPE_NODE;
3229 break;
3230 default:
3231 jj_la1[11] = jj_gen;
3232 jj_consume_token(-1);
3233 throw new ParseException();
3234 }
3235 label_3: while (true) {
3236 switch (jj_nt.kind) {
3237 case 85:
3238 ;
3239 break;
3240 default:
3241 jj_la1[12] = jj_gen;
3242 break label_3;
3243 }
3244 p = Predicate();
3245 ps.add(p);
3246 }
3247 if (name != null) {
3248 s = compiler.nodeNameTest(name);
3249 } else if (instruction != null) {
3250 s = compiler.processingInstructionTest(instruction);
3251 } else {
3252 s = compiler.nodeTypeTest(type);
3253 }
3254 steps.add(compiler.step(axis, s, ps.toArray()));
3255 }
3256
3257
3258 final public int NodeType() throws ParseException {
3259 int type;
3260 switch (jj_nt.kind) {
3261 case TEXT:
3262 jj_consume_token(TEXT);
3263 type = Compiler.NODE_TYPE_TEXT;
3264 break;
3265 case NODE:
3266 jj_consume_token(NODE);
3267 type = Compiler.NODE_TYPE_NODE;
3268 break;
3269 case COMMENT:
3270 jj_consume_token(COMMENT);
3271 type = Compiler.NODE_TYPE_COMMENT;
3272 break;
3273 case PI:
3274 jj_consume_token(PI);
3275 type = Compiler.NODE_TYPE_PI;
3276 break;
3277 default:
3278 jj_la1[38] = jj_gen;
3279 jj_consume_token(-1);
3280 throw new ParseException();
3281 }
3282 {
3283 if (true) {
3284 return type;
3285 }
3286 }
3287 throw new Error("Missing return statement in function");
3288 }
3289
3290
3291 final public Object OrExpr() throws ParseException {
3292 Object ex, r;
3293 ArrayList list = null;
3294 ex = AndExpr();
3295 label_8: while (true) {
3296 switch (jj_nt.kind) {
3297 case OR:
3298 ;
3299 break;
3300 default:
3301 jj_la1[24] = jj_gen;
3302 break label_8;
3303 }
3304 jj_consume_token(OR);
3305 r = AndExpr();
3306 if (list == null) {
3307 list = new ArrayList();
3308 list.add(ex);
3309 }
3310 list.add(r);
3311 }
3312 if (list != null) {
3313 ex = compiler.or(list.toArray());
3314 }
3315 {
3316 if (true) {
3317 return ex;
3318 }
3319 }
3320 throw new Error("Missing return statement in function");
3321 }
3322
3323 final public Object parseExpression() throws ParseException {
3324 Object ex;
3325 ex = Expression();
3326 jj_consume_token(0);
3327 {
3328 if (true) {
3329 return ex;
3330 }
3331 }
3332 throw new Error("Missing return statement in function");
3333 }
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420 final public Object Predicate() throws ParseException {
3421 Object ex;
3422 jj_consume_token(85);
3423 ex = Expression();
3424 jj_consume_token(86);
3425 {
3426 if (true) {
3427 return ex;
3428 }
3429 }
3430 throw new Error("Missing return statement in function");
3431 }
3432
3433
3434 final public Object PrimaryExpr() throws ParseException {
3435 Object ex = null;
3436 switch (jj_nt.kind) {
3437 case VARIABLE:
3438 ex = VariableReference();
3439 break;
3440 case 81:
3441 jj_consume_token(81);
3442 ex = Expression();
3443 jj_consume_token(82);
3444 break;
3445 case Literal:
3446 jj_consume_token(Literal);
3447 ex = compiler.literal(unescape(token.image.substring(1, token.image.length() - 1)));
3448 break;
3449 case Number:
3450 jj_consume_token(Number);
3451 ex = compiler.number(token.image);
3452 break;
3453 default:
3454 jj_la1[16] = jj_gen;
3455 if (jj_2_5(2147483647)) {
3456 ex = CoreFunctionCall();
3457 } else {
3458 switch (jj_nt.kind) {
3459 case OR:
3460 case AND:
3461 case MOD:
3462 case DIV:
3463 case NODE:
3464 case TEXT:
3465 case COMMENT:
3466 case PI:
3467 case FUNCTION_LAST:
3468 case FUNCTION_POSITION:
3469 case FUNCTION_COUNT:
3470 case FUNCTION_ID:
3471 case FUNCTION_KEY:
3472 case FUNCTION_LOCAL_NAME:
3473 case FUNCTION_NAMESPACE_URI:
3474 case FUNCTION_NAME:
3475 case FUNCTION_STRING:
3476 case FUNCTION_CONCAT:
3477 case FUNCTION_STARTS_WITH:
3478 case FUNCTION_ENDS_WITH:
3479 case FUNCTION_CONTAINS:
3480 case FUNCTION_SUBSTRING_BEFORE:
3481 case FUNCTION_SUBSTRING_AFTER:
3482 case FUNCTION_SUBSTRING:
3483 case FUNCTION_STRING_LENGTH:
3484 case FUNCTION_NORMALIZE_SPACE:
3485 case FUNCTION_TRANSLATE:
3486 case FUNCTION_BOOLEAN:
3487 case FUNCTION_NOT:
3488 case FUNCTION_TRUE:
3489 case FUNCTION_FALSE:
3490 case FUNCTION_NULL:
3491 case FUNCTION_LANG:
3492 case FUNCTION_NUMBER:
3493 case FUNCTION_SUM:
3494 case FUNCTION_FLOOR:
3495 case FUNCTION_CEILING:
3496 case FUNCTION_ROUND:
3497 case FUNCTION_FORMAT_NUMBER:
3498 case NCName:
3499 ex = FunctionCall();
3500 break;
3501 default:
3502 jj_la1[17] = jj_gen;
3503 jj_consume_token(-1);
3504 throw new ParseException();
3505 }
3506 }
3507 }
3508 {
3509 if (true) {
3510 return ex;
3511 }
3512 }
3513 throw new Error("Missing return statement in function");
3514 }
3515
3516 final public Object QName() throws ParseException {
3517 String nc1, nc2 = null;
3518 nc1 = NCName();
3519 switch (jj_nt.kind) {
3520 case 80:
3521 jj_consume_token(80);
3522 nc2 = NCName();
3523 break;
3524 default:
3525 jj_la1[3] = jj_gen;
3526 ;
3527 }
3528 if (nc2 == null) {
3529 {
3530 if (true) {
3531 return compiler.qname(null, nc1);
3532 }
3533 }
3534 } else {
3535 {
3536 if (true) {
3537 return compiler.qname(nc1, nc2);
3538 }
3539 }
3540 }
3541 throw new Error("Missing return statement in function");
3542 }
3543
3544 final public Object QName_Without_CoreFunctions() throws ParseException {
3545 String nc1, nc2 = null;
3546 if (jj_2_1(2147483647)) {
3547 nc1 = NCName();
3548 jj_consume_token(80);
3549 nc2 = NCName();
3550 } else {
3551 switch (jj_nt.kind) {
3552 case OR:
3553 case AND:
3554 case MOD:
3555 case DIV:
3556 case NCName:
3557 nc1 = NCName_Without_CoreFunctions();
3558 break;
3559 default:
3560 jj_la1[4] = jj_gen;
3561 jj_consume_token(-1);
3562 throw new ParseException();
3563 }
3564 }
3565 if (nc2 == null) {
3566 {
3567 if (true) {
3568 return compiler.qname(null, nc1);
3569 }
3570 }
3571 } else {
3572 {
3573 if (true) {
3574 return compiler.qname(nc1, nc2);
3575 }
3576 }
3577 }
3578 throw new Error("Missing return statement in function");
3579 }
3580
3581 public void ReInit(final java.io.InputStream stream) {
3582 jj_input_stream.ReInit(stream, 1, 1);
3583 token_source.ReInit(jj_input_stream);
3584 token = new Token();
3585 token.next = jj_nt = token_source.getNextToken();
3586 jj_gen = 0;
3587 for (int i = 0; i < 39; i++) {
3588 jj_la1[i] = -1;
3589 }
3590 for (int i = 0; i < jj_2_rtns.length; i++) {
3591 jj_2_rtns[i] = new JJCalls();
3592 }
3593 }
3594
3595 public void ReInit(final java.io.Reader stream) {
3596 jj_input_stream.ReInit(stream, 1, 1);
3597 token_source.ReInit(jj_input_stream);
3598 token = new Token();
3599 token.next = jj_nt = token_source.getNextToken();
3600 jj_gen = 0;
3601 for (int i = 0; i < 39; i++) {
3602 jj_la1[i] = -1;
3603 }
3604 for (int i = 0; i < jj_2_rtns.length; i++) {
3605 jj_2_rtns[i] = new JJCalls();
3606 }
3607 }
3608
3609 public void ReInit(final XPathParserTokenManager tm) {
3610 token_source = tm;
3611 token = new Token();
3612 token.next = jj_nt = token_source.getNextToken();
3613 jj_gen = 0;
3614 for (int i = 0; i < 39; i++) {
3615 jj_la1[i] = -1;
3616 }
3617 for (int i = 0; i < jj_2_rtns.length; i++) {
3618 jj_2_rtns[i] = new JJCalls();
3619 }
3620 }
3621
3622
3623
3624
3625
3626 final public Object RelationalExpr() throws ParseException {
3627 Object ex, r;
3628 ex = AdditiveExpr();
3629 label_11: while (true) {
3630 switch (jj_nt.kind) {
3631 case LT:
3632 case LTE:
3633 case GT:
3634 case GTE:
3635 ;
3636 break;
3637 default:
3638 jj_la1[28] = jj_gen;
3639 break label_11;
3640 }
3641 switch (jj_nt.kind) {
3642 case LT:
3643 jj_consume_token(LT);
3644 r = AdditiveExpr();
3645 ex = compiler.lessThan(ex, r);
3646 break;
3647 case GT:
3648 jj_consume_token(GT);
3649 r = AdditiveExpr();
3650 ex = compiler.greaterThan(ex, r);
3651 break;
3652 case LTE:
3653 jj_consume_token(LTE);
3654 r = AdditiveExpr();
3655 ex = compiler.lessThanOrEqual(ex, r);
3656 break;
3657 case GTE:
3658 jj_consume_token(GTE);
3659 r = AdditiveExpr();
3660 ex = compiler.greaterThanOrEqual(ex, r);
3661 break;
3662 default:
3663 jj_la1[29] = jj_gen;
3664 jj_consume_token(-1);
3665 throw new ParseException();
3666 }
3667 }
3668 {
3669 if (true) {
3670 return ex;
3671 }
3672 }
3673 throw new Error("Missing return statement in function");
3674 }
3675
3676
3677 final public Object RelativeLocationPath() throws ParseException {
3678 final ArrayList steps = new ArrayList();
3679 NodeTest(steps);
3680 label_2: while (true) {
3681 switch (jj_nt.kind) {
3682 case SLASH:
3683 case SLASHSLASH:
3684 ;
3685 break;
3686 default:
3687 jj_la1[8] = jj_gen;
3688 break label_2;
3689 }
3690 LocationStep(steps);
3691 }
3692 {
3693 if (true) {
3694 return compiler.locationPath(false, steps.toArray());
3695 }
3696 }
3697 throw new Error("Missing return statement in function");
3698 }
3699
3700 public void setCompiler(final Compiler compiler) {
3701 this.compiler = compiler;
3702 }
3703
3704 final public Object SubtractiveExpr() throws ParseException {
3705 Object ex, r = null;
3706 ex = MultiplicativeExpr();
3707 label_13: while (true) {
3708 switch (jj_nt.kind) {
3709 case MINUS:
3710 ;
3711 break;
3712 default:
3713 jj_la1[31] = jj_gen;
3714 break label_13;
3715 }
3716 jj_consume_token(MINUS);
3717 r = MultiplicativeExpr();
3718 ex = compiler.minus(ex, r);
3719 }
3720 {
3721 if (true) {
3722 return ex;
3723 }
3724 }
3725 throw new Error("Missing return statement in function");
3726 }
3727
3728
3729 final public Object UnaryExpr() throws ParseException {
3730 Object ex;
3731 switch (jj_nt.kind) {
3732 case SLASH:
3733 case SLASHSLASH:
3734 case VARIABLE:
3735 case Literal:
3736 case Number:
3737 case OR:
3738 case AND:
3739 case MOD:
3740 case DIV:
3741 case NODE:
3742 case TEXT:
3743 case COMMENT:
3744 case PI:
3745 case AXIS_SELF:
3746 case AXIS_CHILD:
3747 case AXIS_PARENT:
3748 case AXIS_ANCESTOR:
3749 case AXIS_ATTRIBUTE:
3750 case AXIS_NAMESPACE:
3751 case AXIS_PRECEDING:
3752 case AXIS_FOLLOWING:
3753 case AXIS_DESCENDANT:
3754 case AXIS_ANCESTOR_OR_SELF:
3755 case AXIS_FOLLOWING_SIBLING:
3756 case AXIS_PRECEDING_SIBLING:
3757 case AXIS_DESCENDANT_OR_SELF:
3758 case FUNCTION_LAST:
3759 case FUNCTION_POSITION:
3760 case FUNCTION_COUNT:
3761 case FUNCTION_ID:
3762 case FUNCTION_KEY:
3763 case FUNCTION_LOCAL_NAME:
3764 case FUNCTION_NAMESPACE_URI:
3765 case FUNCTION_NAME:
3766 case FUNCTION_STRING:
3767 case FUNCTION_CONCAT:
3768 case FUNCTION_STARTS_WITH:
3769 case FUNCTION_ENDS_WITH:
3770 case FUNCTION_CONTAINS:
3771 case FUNCTION_SUBSTRING_BEFORE:
3772 case FUNCTION_SUBSTRING_AFTER:
3773 case FUNCTION_SUBSTRING:
3774 case FUNCTION_STRING_LENGTH:
3775 case FUNCTION_NORMALIZE_SPACE:
3776 case FUNCTION_TRANSLATE:
3777 case FUNCTION_BOOLEAN:
3778 case FUNCTION_NOT:
3779 case FUNCTION_TRUE:
3780 case FUNCTION_FALSE:
3781 case FUNCTION_NULL:
3782 case FUNCTION_LANG:
3783 case FUNCTION_NUMBER:
3784 case FUNCTION_SUM:
3785 case FUNCTION_FLOOR:
3786 case FUNCTION_CEILING:
3787 case FUNCTION_ROUND:
3788 case FUNCTION_FORMAT_NUMBER:
3789 case NCName:
3790 case 81:
3791 case 83:
3792 case 84:
3793 case 87:
3794 case 89:
3795 ex = UnionExpr();
3796 break;
3797 case MINUS:
3798 jj_consume_token(MINUS);
3799 ex = UnaryExpr();
3800 ex = compiler.minus(ex);
3801 break;
3802 default:
3803 jj_la1[34] = jj_gen;
3804 jj_consume_token(-1);
3805 throw new ParseException();
3806 }
3807 {
3808 if (true) {
3809 return ex;
3810 }
3811 }
3812 throw new Error("Missing return statement in function");
3813 }
3814
3815 private String unescape(String string) {
3816 int index = string.indexOf("'");
3817 while (index != -1) {
3818 string = string.substring(0, index) + "\'" + string.substring(index + 6);
3819 index = string.indexOf("'");
3820 }
3821 index = string.indexOf(""");
3822 while (index != -1) {
3823 string = string.substring(0, index) + "\"" + string.substring(index + 6);
3824 index = string.indexOf(""");
3825 }
3826 return string;
3827 }
3828
3829
3830 final public Object UnionExpr() throws ParseException {
3831 Object ex, r;
3832 ArrayList list = null;
3833 ex = PathExpr();
3834 label_5: while (true) {
3835 switch (jj_nt.kind) {
3836 case UNION:
3837 ;
3838 break;
3839 default:
3840 jj_la1[20] = jj_gen;
3841 break label_5;
3842 }
3843 jj_consume_token(UNION);
3844 r = PathExpr();
3845 if (list == null) {
3846 list = new ArrayList();
3847 list.add(ex);
3848 }
3849 list.add(r);
3850 }
3851 if (list != null) {
3852 ex = compiler.union(list.toArray());
3853 }
3854 {
3855 if (true) {
3856 return ex;
3857 }
3858 }
3859 throw new Error("Missing return statement in function");
3860 }
3861
3862
3863 final public Object VariableReference() throws ParseException {
3864 Object ex;
3865 jj_consume_token(VARIABLE);
3866 ex = QName();
3867 {
3868 if (true) {
3869 return compiler.variableReference(ex);
3870 }
3871 }
3872 throw new Error("Missing return statement in function");
3873 }
3874
3875
3876 final public Object WildcardName() throws ParseException {
3877 Object qn;
3878 String nc1, nc2 = null;
3879 switch (jj_nt.kind) {
3880 case 89:
3881 jj_consume_token(89);
3882 break;
3883 case OR:
3884 case AND:
3885 case MOD:
3886 case DIV:
3887 case NODE:
3888 case TEXT:
3889 case COMMENT:
3890 case PI:
3891 case FUNCTION_LAST:
3892 case FUNCTION_POSITION:
3893 case FUNCTION_COUNT:
3894 case FUNCTION_ID:
3895 case FUNCTION_KEY:
3896 case FUNCTION_LOCAL_NAME:
3897 case FUNCTION_NAMESPACE_URI:
3898 case FUNCTION_NAME:
3899 case FUNCTION_STRING:
3900 case FUNCTION_CONCAT:
3901 case FUNCTION_STARTS_WITH:
3902 case FUNCTION_ENDS_WITH:
3903 case FUNCTION_CONTAINS:
3904 case FUNCTION_SUBSTRING_BEFORE:
3905 case FUNCTION_SUBSTRING_AFTER:
3906 case FUNCTION_SUBSTRING:
3907 case FUNCTION_STRING_LENGTH:
3908 case FUNCTION_NORMALIZE_SPACE:
3909 case FUNCTION_TRANSLATE:
3910 case FUNCTION_BOOLEAN:
3911 case FUNCTION_NOT:
3912 case FUNCTION_TRUE:
3913 case FUNCTION_FALSE:
3914 case FUNCTION_NULL:
3915 case FUNCTION_LANG:
3916 case FUNCTION_NUMBER:
3917 case FUNCTION_SUM:
3918 case FUNCTION_FLOOR:
3919 case FUNCTION_CEILING:
3920 case FUNCTION_ROUND:
3921 case FUNCTION_FORMAT_NUMBER:
3922 case NCName:
3923 NCName();
3924 break;
3925 default:
3926 jj_la1[35] = jj_gen;
3927 jj_consume_token(-1);
3928 throw new ParseException();
3929 }
3930 nc1 = token.image;
3931 switch (jj_nt.kind) {
3932 case 80:
3933 jj_consume_token(80);
3934 switch (jj_nt.kind) {
3935 case 89:
3936 jj_consume_token(89);
3937 break;
3938 case OR:
3939 case AND:
3940 case MOD:
3941 case DIV:
3942 case NODE:
3943 case TEXT:
3944 case COMMENT:
3945 case PI:
3946 case FUNCTION_LAST:
3947 case FUNCTION_POSITION:
3948 case FUNCTION_COUNT:
3949 case FUNCTION_ID:
3950 case FUNCTION_KEY:
3951 case FUNCTION_LOCAL_NAME:
3952 case FUNCTION_NAMESPACE_URI:
3953 case FUNCTION_NAME:
3954 case FUNCTION_STRING:
3955 case FUNCTION_CONCAT:
3956 case FUNCTION_STARTS_WITH:
3957 case FUNCTION_ENDS_WITH:
3958 case FUNCTION_CONTAINS:
3959 case FUNCTION_SUBSTRING_BEFORE:
3960 case FUNCTION_SUBSTRING_AFTER:
3961 case FUNCTION_SUBSTRING:
3962 case FUNCTION_STRING_LENGTH:
3963 case FUNCTION_NORMALIZE_SPACE:
3964 case FUNCTION_TRANSLATE:
3965 case FUNCTION_BOOLEAN:
3966 case FUNCTION_NOT:
3967 case FUNCTION_TRUE:
3968 case FUNCTION_FALSE:
3969 case FUNCTION_NULL:
3970 case FUNCTION_LANG:
3971 case FUNCTION_NUMBER:
3972 case FUNCTION_SUM:
3973 case FUNCTION_FLOOR:
3974 case FUNCTION_CEILING:
3975 case FUNCTION_ROUND:
3976 case FUNCTION_FORMAT_NUMBER:
3977 case NCName:
3978 NCName();
3979 break;
3980 default:
3981 jj_la1[36] = jj_gen;
3982 jj_consume_token(-1);
3983 throw new ParseException();
3984 }
3985 nc2 = token.image;
3986 break;
3987 default:
3988 jj_la1[37] = jj_gen;
3989 ;
3990 }
3991 if (nc2 != null) {
3992 qn = compiler.qname(nc1, nc2);
3993 } else {
3994 qn = compiler.qname(null, nc1);
3995 }
3996 {
3997 if (true) {
3998 return qn;
3999 }
4000 }
4001 throw new Error("Missing return statement in function");
4002 }
4003 }