1:
2:
3:
4:
40:
41:
42: package ;
43:
44: import ;
45: import ;
46: import ;
47: import ;
48: import ;
49: import ;
50: import ;
51: import ;
52: import ;
53:
54:
59: public class XPathParser
60: {
61:
62: NamespaceContext namespaceContext;
63: XPathVariableResolver variableResolver;
64: XPathFunctionResolver functionResolver;
65:
66: QName getQName(String name)
67: {
68: QName qName = QName.valueOf(name);
69: if (namespaceContext != null)
70: {
71: String prefix = qName.getPrefix();
72: String uri = qName.getNamespaceURI();
73: if (prefix != null && (uri == null || uri.length() == 0))
74: {
75: uri = namespaceContext.getNamespaceURI(prefix);
76: String localName = qName.getLocalPart();
77: qName = new QName(uri, localName, prefix);
78: }
79: }
80: return qName;
81: }
82:
83: Expr lookupFunction(String name, List args)
84: {
85: int arity = args.size();
86: if ("position".equals(name) && arity == 0)
87: {
88: return new PositionFunction();
89: }
90: else if ("last".equals(name) && arity == 0)
91: {
92: return new LastFunction();
93: }
94: else if ("string".equals(name) && (arity == 1 || arity == 0))
95: {
96: return new StringFunction(args);
97: }
98: else if ("number".equals(name) && (arity == 1 || arity == 0))
99: {
100: return new NumberFunction(args);
101: }
102: else if ("boolean".equals(name) && arity == 1)
103: {
104: return new BooleanFunction(args);
105: }
106: else if ("count".equals(name) && arity == 1)
107: {
108: return new CountFunction(args);
109: }
110: else if ("not".equals(name) && arity == 1)
111: {
112: return new NotFunction(args);
113: }
114: else if ("id".equals(name) && arity == 1)
115: {
116: return new IdFunction(args);
117: }
118: else if ("concat".equals(name) && arity > 1)
119: {
120: return new ConcatFunction(args);
121: }
122: else if ("true".equals(name) && arity == 0)
123: {
124: return new TrueFunction();
125: }
126: else if ("false".equals(name) && arity == 0)
127: {
128: return new FalseFunction();
129: }
130: else if ("name".equals(name) && (arity == 1 || arity == 0))
131: {
132: return new NameFunction(args);
133: }
134: else if ("local-name".equals(name) && (arity == 1 || arity == 0))
135: {
136: return new LocalNameFunction(args);
137: }
138: else if ("namespace-uri".equals(name) && (arity == 1 || arity == 0))
139: {
140: return new NamespaceUriFunction(args);
141: }
142: else if ("starts-with".equals(name) && arity == 2)
143: {
144: return new StartsWithFunction(args);
145: }
146: else if ("contains".equals(name) && arity == 2)
147: {
148: return new ContainsFunction(args);
149: }
150: else if ("string-length".equals(name) && (arity == 1 || arity == 0))
151: {
152: return new StringLengthFunction(args);
153: }
154: else if ("translate".equals(name) && arity == 3)
155: {
156: return new TranslateFunction(args);
157: }
158: else if ("normalize-space".equals(name) && (arity == 1 || arity == 0))
159: {
160: return new NormalizeSpaceFunction(args);
161: }
162: else if ("substring".equals(name) && (arity == 2 || arity == 3))
163: {
164: return new SubstringFunction(args);
165: }
166: else if ("substring-before".equals(name) && arity == 2)
167: {
168: return new SubstringBeforeFunction(args);
169: }
170: else if ("substring-after".equals(name) && arity == 2)
171: {
172: return new SubstringAfterFunction(args);
173: }
174: else if ("lang".equals(name) && arity == 1)
175: {
176: return new LangFunction(args);
177: }
178: else if ("sum".equals(name) && arity == 1)
179: {
180: return new SumFunction(args);
181: }
182: else if ("floor".equals(name) && arity == 1)
183: {
184: return new FloorFunction(args);
185: }
186: else if ("ceiling".equals(name) && arity == 1)
187: {
188: return new CeilingFunction(args);
189: }
190: else if ("round".equals(name) && arity == 1)
191: {
192: return new RoundFunction(args);
193: }
194: else if (functionResolver != null)
195: {
196: QName qName = QName.valueOf(name);
197: Object function = functionResolver.resolveFunction(qName, arity);
198: if (function != null &&
199: function instanceof Function &&
200: function instanceof Expr)
201: {
202: Function f = (Function) function;
203: f.setArguments(args);
204: return (Expr) function;
205: }
206: }
207: return new FunctionCall(functionResolver, name, args);
208: }
209:
210:
211:
212:
213: public static final int LITERAL = 257;
214: public static final int DIGITS = 258;
215: public static final int NAME = 259;
216: public static final int LP = 260;
217: public static final int RP = 261;
218: public static final int LB = 262;
219: public static final int RB = 263;
220: public static final int COMMA = 264;
221: public static final int PIPE = 265;
222: public static final int SLASH = 266;
223: public static final int DOUBLE_SLASH = 267;
224: public static final int EQ = 268;
225: public static final int NE = 269;
226: public static final int GT = 270;
227: public static final int LT = 271;
228: public static final int GTE = 272;
229: public static final int LTE = 273;
230: public static final int PLUS = 274;
231: public static final int MINUS = 275;
232: public static final int AT = 276;
233: public static final int STAR = 277;
234: public static final int DOLLAR = 278;
235: public static final int COLON = 279;
236: public static final int DOUBLE_COLON = 280;
237: public static final int DOT = 281;
238: public static final int DOUBLE_DOT = 282;
239: public static final int ANCESTOR = 283;
240: public static final int ANCESTOR_OR_SELF = 284;
241: public static final int ATTRIBUTE = 285;
242: public static final int CHILD = 286;
243: public static final int DESCENDANT = 287;
244: public static final int DESCENDANT_OR_SELF = 288;
245: public static final int FOLLOWING = 289;
246: public static final int FOLLOWING_SIBLING = 290;
247: public static final int NAMESPACE = 291;
248: public static final int PARENT = 292;
249: public static final int PRECEDING = 293;
250: public static final int PRECEDING_SIBLING = 294;
251: public static final int SELF = 295;
252: public static final int DIV = 296;
253: public static final int MOD = 297;
254: public static final int OR = 298;
255: public static final int AND = 299;
256: public static final int COMMENT = 300;
257: public static final int PROCESSING_INSTRUCTION = 301;
258: public static final int TEXT = 302;
259: public static final int NODE = 303;
260: public static final int UNARY = 304;
261: public static final int yyErrorCode = 256;
262:
263:
265: public static class yyException extends java.lang.Exception {
266: public yyException (String message) {
267: super(message);
268: }
269: }
270:
271:
273: public interface yyInput {
274:
278: boolean advance () throws java.io.IOException;
279:
283: int token ();
284:
288: Object value ();
289: }
290:
291:
294: public void yyerror (String message) {
295: yyerror(message, null);
296: }
297:
298:
303: public void yyerror (String message, String[] expected) {
304: if (expected != null && expected.length > 0) {
305: System.err.print(message+", expecting");
306: for (int n = 0; n < expected.length; ++ n)
307: System.err.print(" "+expected[n]);
308: System.err.println();
309: } else
310: System.err.println(message);
311: }
312:
313:
316:
317:
318: protected static final int yyFinal = 30;
319:
320:
324:
325:
326:
327:
328:
329:
330:
331:
335: protected String[] yyExpecting (int state) {
336: int token, n, len = 0;
337: boolean[] ok = new boolean[YyNameClass.yyName.length];
338:
339: if ((n = YySindexClass.yySindex[state]) != 0)
340: for (token = n < 0 ? -n : 0;
341: token < YyNameClass.yyName.length && n+token < YyTableClass.yyTable.length; ++ token)
342: if (YyCheckClass.yyCheck[n+token] == token && !ok[token] && YyNameClass.yyName[token] != null) {
343: ++ len;
344: ok[token] = true;
345: }
346: if ((n = YyRindexClass.yyRindex[state]) != 0)
347: for (token = n < 0 ? -n : 0;
348: token < YyNameClass.yyName.length && n+token < YyTableClass.yyTable.length; ++ token)
349: if (YyCheckClass.yyCheck[n+token] == token && !ok[token] && YyNameClass.yyName[token] != null) {
350: ++ len;
351: ok[token] = true;
352: }
353:
354: String result[] = new String[len];
355: for (n = token = 0; n < len; ++ token)
356: if (ok[token]) result[n++] = YyNameClass.yyName[token];
357: return result;
358: }
359:
360:
367: public Object yyparse (yyInput yyLex, Object yydebug)
368: throws java.io.IOException, yyException {
369:
370: return yyparse(yyLex);
371: }
372:
373:
377: protected int yyMax;
378:
379:
385: protected Object yyDefault (Object first) {
386: return first;
387: }
388:
389:
395: public Object yyparse (yyInput yyLex)
396: throws java.io.IOException, yyException {
397: if (yyMax <= 0) yyMax = 256;
398: int yyState = 0, yyStates[] = new int[yyMax];
399: Object yyVal = null, yyVals[] = new Object[yyMax];
400: int yyToken = -1;
401: int yyErrorFlag = 0;
402:
403: yyLoop: for (int yyTop = 0;; ++ yyTop) {
404: if (yyTop >= yyStates.length) {
405: int[] i = new int[yyStates.length+yyMax];
406: System.arraycopy(yyStates, 0, i, 0, yyStates.length);
407: yyStates = i;
408: Object[] o = new Object[yyVals.length+yyMax];
409: System.arraycopy(yyVals, 0, o, 0, yyVals.length);
410: yyVals = o;
411: }
412: yyStates[yyTop] = yyState;
413: yyVals[yyTop] = yyVal;
414:
415:
416: yyDiscarded: for (;;) {
417: int yyN;
418: if ((yyN = YyDefRedClass.yyDefRed[yyState]) == 0) {
419: if (yyToken < 0) {
420: yyToken = yyLex.advance() ? yyLex.token() : 0;
421:
422:
423: }
424: if ((yyN = YySindexClass.yySindex[yyState]) != 0 && (yyN += yyToken) >= 0
425: && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyToken) {
426:
427:
428: yyState = YyTableClass.yyTable[yyN];
429: yyVal = yyLex.value();
430: yyToken = -1;
431: if (yyErrorFlag > 0) -- yyErrorFlag;
432: continue yyLoop;
433: }
434: if ((yyN = YyRindexClass.yyRindex[yyState]) != 0 && (yyN += yyToken) >= 0
435: && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyToken)
436: yyN = YyTableClass.yyTable[yyN];
437: else
438: switch (yyErrorFlag) {
439:
440: case 0:
441: yyerror("syntax error", yyExpecting(yyState));
442:
443:
444: case 1: case 2:
445: yyErrorFlag = 3;
446: do {
447: if ((yyN = YySindexClass.yySindex[yyStates[yyTop]]) != 0
448: && (yyN += yyErrorCode) >= 0 && yyN < YyTableClass.yyTable.length
449: && YyCheckClass.yyCheck[yyN] == yyErrorCode) {
450:
451:
452: yyState = YyTableClass.yyTable[yyN];
453: yyVal = yyLex.value();
454: continue yyLoop;
455: }
456:
457: } while (-- yyTop >= 0);
458:
459: throw new yyException("irrecoverable syntax error");
460:
461: case 3:
462: if (yyToken == 0) {
463:
464: throw new yyException("irrecoverable syntax error at end-of-file");
465: }
466:
467:
468:
469: yyToken = -1;
470: continue yyDiscarded;
471: }
472: }
473: int yyV = yyTop + 1-YyLenClass.yyLen[yyN];
474:
475:
476: yyVal = yyDefault(yyV > yyTop ? null : yyVals[yyV]);
477: switch (yyN) {
478: case 4:
479:
480: {
481: yyVal = new Root();
482: }
483: break;
484: case 5:
485:
486: {
487: Steps steps;
488: if (yyVals[0+yyTop] instanceof Steps)
489: {
490: steps = (Steps) yyVals[0+yyTop];
491: }
492: else
493: {
494: steps = new Steps();
495: steps.path.addFirst(yyVals[0+yyTop]);
496: }
497: steps.path.addFirst(new Root());
498: yyVal = steps;
499:
500: }
501: break;
502: case 6:
503:
504: {
505: Test nt = new NodeTypeTest((short) 0);
506: Selector s = new Selector(Selector.DESCENDANT_OR_SELF,
507: Collections.singletonList (nt));
508: Steps steps;
509: if (yyVals[0+yyTop] instanceof Steps)
510: {
511: steps = (Steps) yyVals[0+yyTop];
512: }
513: else
514: {
515: steps = new Steps();
516: steps.path.addFirst(yyVals[0+yyTop]);
517: }
518: steps.path.addFirst(s);
519: steps.path.addFirst(new Root());
520: yyVal = steps;
521:
522:
523: }
524: break;
525: case 8:
526:
527: {
528: Steps steps;
529: if (yyVals[-2+yyTop] instanceof Steps)
530: {
531: steps = (Steps) yyVals[-2+yyTop];
532: }
533: else
534: {
535: steps = new Steps();
536: steps.path.addFirst(yyVals[-2+yyTop]);
537: }
538: steps.path.addLast(yyVals[0+yyTop]);
539: yyVal = steps;
540:
541: }
542: break;
543: case 9:
544:
545: {
546: Test nt = new NodeTypeTest((short) 0);
547: Selector s = new Selector(Selector.DESCENDANT_OR_SELF,
548: Collections.singletonList (nt));
549: Steps steps;
550: if (yyVals[-2+yyTop] instanceof Steps)
551: {
552: steps = (Steps) yyVals[-2+yyTop];
553: }
554: else
555: {
556: steps = new Steps();
557: steps.path.addFirst(yyVals[-2+yyTop]);
558: }
559: steps.path.addLast(s);
560: steps.path.addLast(yyVals[0+yyTop]);
561: yyVal = steps;
562:
563:
564: }
565: break;
566: case 10:
567:
568: {
569: yyVal = new Selector (Selector.CHILD, (List) yyVals[0+yyTop]);
570: }
571: break;
572: case 11:
573:
574: {
575: yyVal = new Selector (Selector.ATTRIBUTE, (List) yyVals[0+yyTop]);
576: }
577: break;
578: case 12:
579:
580: {
581: yyVal = new Selector (((Integer) yyVals[-2+yyTop]).intValue (), (List) yyVals[0+yyTop]);
582: }
583: break;
584: case 13:
585:
586: {
587: yyVal = new Selector (Selector.SELF, Collections.EMPTY_LIST);
588: }
589: break;
590: case 14:
591:
592: {
593: yyVal = new Selector (Selector.PARENT, Collections.EMPTY_LIST);
594: }
595: break;
596: case 15:
597:
598: {
599: List list = new ArrayList();
600: list.add(yyVals[0+yyTop]);
601: yyVal = list;
602: }
603: break;
604: case 16:
605:
606: {
607: List list = (List)yyVals[-1+yyTop];
608: list.add(yyVals[0+yyTop]);
609: yyVal = list;
610: }
611: break;
612: case 17:
613:
614: {
615: yyVal = new Integer(Selector.ANCESTOR);
616: }
617: break;
618: case 18:
619:
620: {
621: yyVal = new Integer(Selector.ANCESTOR_OR_SELF);
622: }
623: break;
624: case 19:
625:
626: {
627: yyVal = new Integer(Selector.ATTRIBUTE);
628: }
629: break;
630: case 20:
631:
632: {
633: yyVal = new Integer(Selector.CHILD);
634: }
635: break;
636: case 21:
637:
638: {
639: yyVal = new Integer(Selector.DESCENDANT);
640: }
641: break;
642: case 22:
643:
644: {
645: yyVal = new Integer(Selector.DESCENDANT_OR_SELF);
646: }
647: break;
648: case 23:
649:
650: {
651: yyVal = new Integer(Selector.FOLLOWING);
652: }
653: break;
654: case 24:
655:
656: {
657: yyVal = new Integer(Selector.FOLLOWING_SIBLING);
658: }
659: break;
660: case 25:
661:
662: {
663: yyVal = new Integer(Selector.NAMESPACE);
664: }
665: break;
666: case 26:
667:
668: {
669: yyVal = new Integer(Selector.PARENT);
670: }
671: break;
672: case 27:
673:
674: {
675: yyVal = new Integer(Selector.PRECEDING);
676: }
677: break;
678: case 28:
679:
680: {
681: yyVal = new Integer(Selector.PRECEDING_SIBLING);
682: }
683: break;
684: case 29:
685:
686: {
687: yyVal = new Integer(Selector.SELF);
688: }
689: break;
690: case 31:
691:
692: {
693: yyVal = new NodeTypeTest(Node.PROCESSING_INSTRUCTION_NODE, (String) yyVals[-1+yyTop]);
694: }
695: break;
696: case 32:
697:
698: {
699: yyVal = new NodeTypeTest(((Short) yyVals[-1+yyTop]).shortValue());
700: }
701: break;
702: case 33:
703:
704: {
705: yyVal = new Predicate((Expr) yyVals[-1+yyTop]);
706: }
707: break;
708: case 35:
709:
710: {
711: yyVal = new ParenthesizedExpr((Expr) yyVals[-1+yyTop]);
712: }
713: break;
714: case 36:
715:
716: {
717: yyVal = new Constant(yyVals[0+yyTop]);
718: }
719: break;
720: case 37:
721:
722: {
723: yyVal = new Constant(yyVals[0+yyTop]);
724: }
725: break;
726: case 39:
727:
728: {
729: yyVal = lookupFunction((String) yyVals[-2+yyTop], Collections.EMPTY_LIST);
730: }
731: break;
732: case 40:
733:
734: {
735: yyVal = lookupFunction((String) yyVals[-3+yyTop], (List) yyVals[-1+yyTop]);
736: }
737: break;
738: case 41:
739:
740: {
741: List list = new ArrayList();
742: list.add(yyVals[0+yyTop]);
743: yyVal = list;
744: }
745: break;
746: case 42:
747:
748: {
749: List list = (List) yyVals[0+yyTop];
750: list.add(0, yyVals[-2+yyTop]);
751: yyVal = list;
752: }
753: break;
754: case 44:
755:
756: {
757: yyVal = new UnionExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]);
758: }
759: break;
760: case 47:
761:
762: {
763: Steps steps;
764: if (yyVals[0+yyTop] instanceof Steps)
765: {
766: steps = (Steps) yyVals[0+yyTop];
767: }
768: else
769: {
770: steps = new Steps();
771: steps.path.addFirst(yyVals[0+yyTop]);
772: }
773: steps.path.addFirst(yyVals[-2+yyTop]);
774: yyVal = steps;
775:
776: }
777: break;
778: case 48:
779:
780: {
781: Test nt = new NodeTypeTest((short) 0);
782: Selector s = new Selector(Selector.DESCENDANT_OR_SELF,
783: Collections.singletonList(nt));
784: Steps steps;
785: if (yyVals[0+yyTop] instanceof Steps)
786: {
787: steps = (Steps) yyVals[0+yyTop];
788: }
789: else
790: {
791: steps = new Steps();
792: steps.path.addFirst(yyVals[0+yyTop]);
793: }
794: steps.path.addFirst(s);
795: steps.path.addFirst(yyVals[-2+yyTop]);
796: yyVal = steps;
797:
798:
799: }
800: break;
801: case 50:
802:
803: {
804: Predicate filter = (Predicate) yyVals[0+yyTop];
805: Selector s = new Selector(Selector.SELF,
806: Collections.singletonList(filter));
807: Steps steps;
808: if (yyVals[-1+yyTop] instanceof Steps)
809: {
810: steps = (Steps) yyVals[-1+yyTop];
811: }
812: else
813: {
814: steps = new Steps();
815: steps.path.addFirst(yyVals[-1+yyTop]);
816: }
817: steps.path.addLast(s);
818: yyVal = steps;
819:
820: }
821: break;
822: case 52:
823:
824: {
825: yyVal = new OrExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]);
826: }
827: break;
828: case 54:
829:
830: {
831: yyVal = new AndExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop]);
832: }
833: break;
834: case 56:
835:
836: {
837: yyVal = new EqualityExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false);
838: }
839: break;
840: case 57:
841:
842: {
843: yyVal = new EqualityExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true);
844: }
845: break;
846: case 59:
847:
848: {
849: yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true, false);
850: }
851: break;
852: case 60:
853:
854: {
855: yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false, false);
856: }
857: break;
858: case 61:
859:
860: {
861: yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], true, true);
862: }
863: break;
864: case 62:
865:
866: {
867: yyVal = new RelationalExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], false, true);
868: }
869: break;
870: case 64:
871:
872: {
873: yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.ADD);
874: }
875: break;
876: case 65:
877:
878: {
879: yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.SUBTRACT);
880: }
881: break;
882: case 67:
883:
884: {
885: yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.MULTIPLY);
886: }
887: break;
888: case 68:
889:
890: {
891: yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.DIVIDE);
892: }
893: break;
894: case 69:
895:
896: {
897: yyVal = new ArithmeticExpr((Expr) yyVals[-2+yyTop], (Expr) yyVals[0+yyTop], ArithmeticExpr.MODULO);
898: }
899: break;
900: case 71:
901:
902: {
903: yyVal = new NegativeExpr((Expr) yyVals[0+yyTop]);
904: }
905: break;
906: case 72:
907:
908: {
909: yyVal = new Double((String) yyVals[0+yyTop] + ".0");
910: }
911: break;
912: case 73:
913:
914: {
915: yyVal = new Double((String) yyVals[-1+yyTop] + ".0");
916: }
917: break;
918: case 74:
919:
920: {
921: yyVal = new Double((String) yyVals[-2+yyTop] + "." + (String) yyVals[0+yyTop]);
922: }
923: break;
924: case 75:
925:
926: {
927: yyVal = new Double("0." + (String) yyVals[0+yyTop]);
928: }
929: break;
930: case 77:
931:
932: {
933: String name = (String) yyVals[0+yyTop];
934: yyVal = new VariableReference(variableResolver, getQName(name));
935: }
936: break;
937: case 78:
938:
939: {
940: yyVal = new NameTest(null, true, true);
941: }
942: break;
943: case 79:
944:
945: {
946: QName qName = getQName((String) yyVals[-2+yyTop]);
947: yyVal = new NameTest(qName, true, false);
948: }
949: break;
950: case 80:
951:
952: {
953: QName qName = getQName((String) yyVals[0+yyTop]);
954: yyVal = new NameTest(qName, false, false);
955: }
956: break;
957: case 82:
958:
959: {
960: yyVal = (String) yyVals[-2+yyTop] + ':' + (String) yyVals[0+yyTop];
961: }
962: break;
963: case 83:
964:
965: {
966: yyVal = new Short(Node.COMMENT_NODE);
967: }
968: break;
969: case 84:
970:
971: {
972: yyVal = new Short(Node.TEXT_NODE);
973: }
974: break;
975: case 85:
976:
977: {
978: yyVal = new Short(Node.PROCESSING_INSTRUCTION_NODE);
979: }
980: break;
981: case 86:
982:
983: {
984: yyVal = new Short((short) 0);
985: }
986: break;
987:
988: }
989: yyTop -= YyLenClass.yyLen[yyN];
990: yyState = yyStates[yyTop];
991: int yyM = YyLhsClass.yyLhs[yyN];
992: if (yyState == 0 && yyM == 0) {
993:
994: yyState = yyFinal;
995: if (yyToken < 0) {
996: yyToken = yyLex.advance() ? yyLex.token() : 0;
997:
998:
999: }
1000: if (yyToken == 0) {
1001:
1002: return yyVal;
1003: }
1004: continue yyLoop;
1005: }
1006: if ((yyN = YyGindexClass.yyGindex[yyM]) != 0 && (yyN += yyState) >= 0
1007: && yyN < YyTableClass.yyTable.length && YyCheckClass.yyCheck[yyN] == yyState)
1008: yyState = YyTableClass.yyTable[yyN];
1009: else
1010: yyState = YyDgotoClass.yyDgoto[yyM];
1011:
1012: continue yyLoop;
1013: }
1014: }
1015: }
1016:
1017: protected static final class YyLhsClass {
1018:
1019: public static final short yyLhs [] = { -1,
1020: 0, 2, 2, 4, 4, 4, 3, 3, 3, 5,
1021: 5, 5, 5, 5, 6, 6, 7, 7, 7, 7,
1022: 7, 7, 7, 7, 7, 7, 7, 7, 7, 8,
1023: 8, 8, 9, 12, 12, 12, 12, 12, 15, 15,
1024: 17, 17, 18, 18, 19, 19, 19, 19, 20, 20,
1025: 1, 1, 21, 21, 22, 22, 22, 23, 23, 23,
1026: 23, 23, 24, 24, 24, 25, 25, 25, 25, 26,
1027: 26, 14, 14, 14, 14, 16, 13, 10, 10, 10,
1028: 27, 27, 11, 11, 11, 11,
1029: };
1030: }
1031:
1032: protected static final class YyLenClass {
1033:
1034: public static final short yyLen [] = { 2,
1035: 1, 1, 1, 1, 2, 2, 1, 3, 3, 1,
1036: 2, 3, 1, 1, 1, 2, 1, 1, 1, 1,
1037: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1038: 3, 2, 3, 1, 3, 1, 1, 1, 3, 4,
1039: 1, 3, 1, 3, 1, 1, 3, 3, 1, 2,
1040: 1, 3, 1, 3, 1, 3, 3, 1, 3, 3,
1041: 3, 3, 1, 3, 3, 1, 3, 3, 3, 1,
1042: 2, 1, 2, 3, 2, 1, 2, 1, 3, 1,
1043: 1, 3, 1, 1, 1, 1,
1044: };
1045: }
1046:
1047: protected static final class YyDefRedClass {
1048:
1049: public static final short yyDefRed [] = { 0,
1050: 36, 0, 0, 0, 0, 0, 0, 0, 78, 0,
1051: 0, 14, 17, 18, 19, 20, 21, 22, 23, 24,
1052: 25, 26, 27, 28, 29, 83, 0, 84, 86, 0,
1053: 0, 45, 0, 3, 7, 0, 0, 15, 30, 0,
1054: 49, 34, 37, 38, 0, 0, 43, 0, 0, 0,
1055: 0, 0, 0, 66, 0, 0, 0, 0, 13, 0,
1056: 80, 0, 71, 0, 0, 77, 75, 0, 0, 0,
1057: 0, 0, 16, 0, 32, 0, 0, 0, 0, 50,
1058: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1059: 0, 0, 74, 82, 79, 35, 0, 31, 0, 8,
1060: 9, 0, 0, 39, 0, 0, 44, 0, 0, 0,
1061: 0, 0, 0, 0, 0, 0, 0, 0, 67, 68,
1062: 69, 33, 0, 40, 42,
1063: };
1064: }
1065:
1066: protected static final class YyDgotoClass {
1067:
1068: public static final short yyDgoto [] = { 105,
1069: 31, 32, 33, 34, 35, 36, 37, 38, 73, 39,
1070: 40, 41, 42, 43, 44, 45, 106, 46, 47, 48,
1071: 49, 50, 51, 52, 53, 54, 55,
1072: };
1073: }
1074:
1075: protected static final class YySindexClass {
1076:
1077: public static final short yySindex [] = { -97,
1078: 0, -271, -267, -97, -239, -239, -97, -199, 0, -236,
1079: -222, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1080: 0, 0, 0, 0, 0, 0, -218, 0, 0, 0,
1081: -257, 0, -241, 0, 0, -205, -221, 0, 0, -194,
1082: 0, 0, 0, 0, -190, -185, 0, -238, -211, -234,
1083: -255, -209, -275, 0, 0, -169, -250, -168, 0, -241,
1084: 0, -241, 0, -205, -187, 0, 0, -167, -97, -239,
1085: -239, -97, 0, -199, 0, -151, -43, -239, -239, 0,
1086: -97, -97, -97, -97, -97, -97, -97, -97, -97, -97,
1087: -97, -97, 0, 0, 0, 0, -164, 0, -211, 0,
1088: 0, -166, -205, 0, -165, -163, 0, -241, -241, -234,
1089: -255, -255, -209, -209, -209, -209, -275, -275, 0, 0,
1090: 0, 0, -97, 0, 0,
1091: };
1092: }
1093:
1094: protected static final class YyRindexClass {
1095:
1096: public static final short yyRindex [] = { 0,
1097: 0, 58, 1, 0, 420, 0, 0, 0, 0, 0,
1098: 129, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1099: 0, 0, 0, 0, 0, 0, -161, 0, 0, 0,
1100: 40, 0, 237, 0, 0, 168, 0, 0, 0, 0,
1101: 0, 0, 0, 0, 0, 459, 0, 277, 557, 544,
1102: 656, 561, 474, 0, 19, 75, 0, 0, 0, 295,
1103: 0, 334, 0, 183, 114, 0, 0, 0, 0, 0,
1104: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1105: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1106: 0, 0, 0, 0, 0, 0, 0, 0, 686, 0,
1107: 0, 0, 222, 0, -156, 0, 0, 351, 405, 553,
1108: 665, 697, 577, 600, 617, 639, 513, 528, 0, 0,
1109: 0, 0, 0, 0, 0,
1110: };
1111: }
1112:
1113: protected static final class YyGindexClass {
1114:
1115: public static final short yyGindex [] = { 7,
1116: 0, 0, 8, 0, 3, -3, 0, 0, 48, 0,
1117: 0, 0, 0, 0, 0, 0, -12, 0, 35, 0,
1118: 44, 36, -1, -54, 2, -7, -2,
1119: };
1120: }
1121:
1122: protected static final class YyTableClass {
1123:
1124: public static final short yyTable [] = { 63,
1125: 81, 90, 61, 61, 64, 61, 30, 66, 94, 56,
1126: 58, 57, 60, 62, 84, 85, 86, 87, 80, 3,
1127: 91, 92, 65, 72, 70, 71, 95, 78, 79, 113,
1128: 114, 115, 116, 82, 83, 67, 8, 9, 68, 1,
1129: 69, 59, 12, 13, 14, 15, 16, 17, 18, 19,
1130: 20, 21, 22, 23, 24, 25, 72, 72, 74, 3,
1131: 26, 27, 28, 29, 88, 89, 75, 61, 61, 76,
1132: 103, 61, 100, 101, 73, 61, 61, 9, 102, 77,
1133: 111, 112, 119, 120, 121, 108, 109, 81, 93, 117,
1134: 118, 97, 96, 98, 94, 80, 122, 124, 123, 85,
1135: 26, 27, 28, 29, 41, 1, 2, 3, 4, 104,
1136: 125, 107, 99, 81, 5, 6, 110, 0, 0, 0,
1137: 0, 0, 0, 7, 8, 9, 10, 0, 13, 11,
1138: 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
1139: 22, 23, 24, 25, 0, 0, 0, 0, 26, 27,
1140: 28, 29, 0, 0, 0, 0, 0, 0, 0, 1,
1141: 2, 3, 4, 0, 0, 0, 0, 10, 5, 6,
1142: 0, 0, 0, 0, 0, 0, 0, 7, 8, 9,
1143: 10, 0, 11, 11, 12, 13, 14, 15, 16, 17,
1144: 18, 19, 20, 21, 22, 23, 24, 25, 0, 0,
1145: 0, 0, 26, 27, 28, 29, 0, 0, 0, 0,
1146: 0, 0, 0, 1, 2, 3, 4, 0, 0, 0,
1147: 0, 12, 5, 6, 0, 0, 0, 0, 0, 0,
1148: 0, 0, 8, 9, 10, 0, 2, 11, 12, 13,
1149: 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
1150: 24, 25, 0, 0, 0, 0, 26, 27, 28, 29,
1151: 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
1152: 81, 81, 81, 81, 81, 81, 46, 81, 76, 80,
1153: 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
1154: 80, 80, 80, 80, 5, 80, 81, 81, 81, 81,
1155: 1, 0, 1, 1, 0, 0, 0, 0, 0, 0,
1156: 0, 0, 0, 0, 80, 80, 80, 80, 72, 72,
1157: 72, 72, 72, 72, 72, 72, 72, 72, 72, 72,
1158: 72, 72, 72, 6, 72, 73, 73, 73, 73, 73,
1159: 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
1160: 47, 73, 0, 72, 72, 72, 72, 0, 0, 0,
1161: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1162: 73, 73, 73, 73, 81, 81, 81, 81, 81, 81,
1163: 81, 81, 81, 81, 81, 81, 81, 81, 81, 13,
1164: 81, 13, 13, 13, 13, 13, 13, 13, 13, 13,
1165: 13, 13, 13, 13, 48, 13, 0, 0, 0, 81,
1166: 81, 81, 81, 0, 0, 0, 0, 0, 0, 4,
1167: 0, 0, 0, 0, 13, 13, 13, 13, 10, 0,
1168: 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
1169: 10, 10, 10, 11, 10, 11, 11, 11, 11, 11,
1170: 11, 11, 11, 11, 11, 11, 11, 11, 70, 11,
1171: 0, 0, 0, 10, 10, 10, 10, 0, 0, 0,
1172: 0, 0, 0, 63, 0, 0, 0, 0, 11, 11,
1173: 11, 11, 12, 0, 12, 12, 12, 12, 12, 12,
1174: 12, 12, 12, 12, 12, 12, 12, 2, 12, 2,
1175: 2, 2, 0, 0, 2, 2, 2, 2, 2, 2,
1176: 2, 2, 64, 2, 0, 0, 0, 12, 12, 12,
1177: 12, 0, 0, 0, 0, 0, 0, 65, 0, 0,
1178: 0, 0, 2, 2, 2, 2, 0, 46, 0, 46,
1179: 46, 46, 0, 53, 46, 46, 46, 46, 46, 46,
1180: 46, 46, 54, 46, 0, 5, 51, 5, 5, 5,
1181: 58, 0, 5, 5, 5, 5, 5, 5, 5, 5,
1182: 0, 5, 46, 46, 46, 46, 60, 0, 0, 0,
1183: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1184: 5, 5, 5, 5, 6, 0, 6, 6, 6, 59,
1185: 0, 6, 6, 6, 6, 6, 6, 6, 6, 0,
1186: 6, 47, 0, 47, 47, 47, 62, 0, 47, 47,
1187: 47, 47, 47, 47, 47, 47, 0, 47, 0, 6,
1188: 6, 6, 6, 0, 0, 0, 0, 0, 61, 0,
1189: 0, 0, 0, 0, 0, 0, 47, 47, 47, 47,
1190: 0, 0, 0, 0, 0, 55, 0, 0, 0, 0,
1191: 0, 0, 0, 0, 56, 48, 0, 48, 48, 48,
1192: 0, 0, 48, 48, 48, 48, 48, 48, 48, 48,
1193: 4, 48, 4, 4, 4, 52, 0, 4, 4, 4,
1194: 4, 4, 4, 4, 4, 0, 57, 0, 0, 0,
1195: 48, 48, 48, 48, 0, 0, 0, 0, 0, 0,
1196: 0, 0, 0, 0, 0, 4, 4, 4, 4, 70,
1197: 0, 70, 70, 0, 0, 0, 70, 70, 70, 70,
1198: 70, 70, 70, 70, 63, 70, 63, 63, 0, 0,
1199: 0, 63, 63, 63, 63, 63, 63, 63, 63, 0,
1200: 0, 0, 0, 0, 70, 70, 70, 70, 0, 0,
1201: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202: 0, 63, 63, 64, 0, 64, 64, 0, 0, 0,
1203: 64, 64, 64, 64, 64, 64, 64, 64, 65, 0,
1204: 65, 65, 0, 0, 0, 65, 65, 65, 65, 65,
1205: 65, 65, 65, 0, 53, 0, 53, 53, 0, 0,
1206: 64, 64, 0, 54, 0, 54, 54, 51, 0, 51,
1207: 51, 58, 0, 58, 58, 65, 65, 0, 58, 58,
1208: 58, 58, 58, 58, 0, 0, 0, 60, 0, 60,
1209: 60, 53, 53, 0, 60, 60, 60, 60, 60, 60,
1210: 54, 54, 0, 0, 51, 0, 0, 0, 58, 58,
1211: 59, 0, 59, 59, 0, 0, 0, 59, 59, 59,
1212: 59, 59, 59, 0, 60, 60, 0, 62, 0, 62,
1213: 62, 0, 0, 0, 62, 62, 62, 62, 62, 62,
1214: 0, 0, 0, 0, 0, 0, 0, 59, 59, 61,
1215: 0, 61, 61, 0, 0, 0, 61, 61, 61, 61,
1216: 61, 61, 0, 0, 62, 62, 55, 0, 55, 55,
1217: 0, 0, 0, 55, 55, 56, 0, 56, 56, 0,
1218: 0, 0, 56, 56, 0, 0, 61, 61, 0, 0,
1219: 0, 0, 0, 0, 0, 0, 52, 0, 52, 52,
1220: 0, 0, 0, 55, 55, 0, 0, 57, 0, 57,
1221: 57, 0, 56, 56, 57, 57, 0, 0, 0, 0,
1222: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1223: 0, 0, 0, 52, 0, 0, 0, 0, 0, 0,
1224: 0, 0, 0, 0, 57, 57,
1225: };
1226: }
1227:
1228: protected static final class YyCheckClass {
1229:
1230: public static final short yyCheck [] = { 7,
1231: 0, 277, 5, 6, 8, 8, 0, 10, 259, 281,
1232: 4, 279, 5, 6, 270, 271, 272, 273, 0, 259,
1233: 296, 297, 259, 262, 266, 267, 277, 266, 267, 84,
1234: 85, 86, 87, 268, 269, 258, 276, 277, 257, 0,
1235: 298, 281, 282, 283, 284, 285, 286, 287, 288, 289,
1236: 290, 291, 292, 293, 294, 295, 262, 0, 280, 259,
1237: 300, 301, 302, 303, 274, 275, 261, 70, 71, 260,
1238: 74, 74, 70, 71, 0, 78, 79, 277, 72, 265,
1239: 82, 83, 90, 91, 92, 78, 79, 299, 258, 88,
1240: 89, 279, 261, 261, 259, 48, 263, 261, 264, 261,
1241: 300, 301, 302, 303, 261, 257, 258, 259, 260, 261,
1242: 123, 77, 69, 0, 266, 267, 81, -1, -1, -1,
1243: -1, -1, -1, 275, 276, 277, 278, -1, 0, 281,
1244: 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
1245: 292, 293, 294, 295, -1, -1, -1, -1, 300, 301,
1246: 302, 303, -1, -1, -1, -1, -1, -1, -1, 257,
1247: 258, 259, 260, -1, -1, -1, -1, 0, 266, 267,
1248: -1, -1, -1, -1, -1, -1, -1, 275, 276, 277,
1249: 278, -1, 0, 281, 282, 283, 284, 285, 286, 287,
1250: 288, 289, 290, 291, 292, 293, 294, 295, -1, -1,
1251: -1, -1, 300, 301, 302, 303, -1, -1, -1, -1,
1252: -1, -1, -1, 257, 258, 259, 260, -1, -1, -1,
1253: -1, 0, 266, 267, -1, -1, -1, -1, -1, -1,
1254: -1, -1, 276, 277, 278, -1, 0, 281, 282, 283,
1255: 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
1256: 294, 295, -1, -1, -1, -1, 300, 301, 302, 303,
1257: 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
1258: 270, 271, 272, 273, 274, 275, 0, 277, 260, 261,
1259: 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1260: 272, 273, 274, 275, 0, 277, 296, 297, 298, 299,
1261: 261, -1, 263, 264, -1, -1, -1, -1, -1, -1,
1262: -1, -1, -1, -1, 296, 297, 298, 299, 261, 262,
1263: 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
1264: 273, 274, 275, 0, 277, 261, 262, 263, 264, 265,
1265: 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
1266: 0, 277, -1, 296, 297, 298, 299, -1, -1, -1,
1267: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1268: 296, 297, 298, 299, 261, 262, 263, 264, 265, 266,
1269: 267, 268, 269, 270, 271, 272, 273, 274, 275, 261,
1270: 277, 263, 264, 265, 266, 267, 268, 269, 270, 271,
1271: 272, 273, 274, 275, 0, 277, -1, -1, -1, 296,
1272: 297, 298, 299, -1, -1, -1, -1, -1, -1, 0,
1273: -1, -1, -1, -1, 296, 297, 298, 299, 261, -1,
1274: 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
1275: 273, 274, 275, 261, 277, 263, 264, 265, 266, 267,
1276: 268, 269, 270, 271, 272, 273, 274, 275, 0, 277,
1277: -1, -1, -1, 296, 297, 298, 299, -1, -1, -1,
1278: -1, -1, -1, 0, -1, -1, -1, -1, 296, 297,
1279: 298, 299, 261, -1, 263, 264, 265, 266, 267, 268,
1280: 269, 270, 271, 272, 273, 274, 275, 261, 277, 263,
1281: 264, 265, -1, -1, 268, 269, 270, 271, 272, 273,
1282: 274, 275, 0, 277, -1, -1, -1, 296, 297, 298,
1283: 299, -1, -1, -1, -1, -1, -1, 0, -1, -1,
1284: -1, -1, 296, 297, 298, 299, -1, 261, -1, 263,
1285: 264, 265, -1, 0, 268, 269, 270, 271, 272, 273,
1286: 274, 275, 0, 277, -1, 261, 0, 263, 264, 265,
1287: 0, -1, 268, 269, 270, 271, 272, 273, 274, 275,
1288: -1, 277, 296, 297, 298, 299, 0, -1, -1, -1,
1289: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1290: 296, 297, 298, 299, 261, -1, 263, 264, 265, 0,
1291: -1, 268, 269, 270, 271, 272, 273, 274, 275, -1,
1292: 277, 261, -1, 263, 264, 265, 0, -1, 268, 269,
1293: 270, 271, 272, 273, 274, 275, -1, 277, -1, 296,
1294: 297, 298, 299, -1, -1, -1, -1, -1, 0, -1,
1295: -1, -1, -1, -1, -1, -1, 296, 297, 298, 299,
1296: -1, -1, -1, -1, -1, 0, -1, -1, -1, -1,
1297: -1, -1, -1, -1, 0, 261, -1, 263, 264, 265,
1298: -1, -1, 268, 269, 270, 271, 272, 273, 274, 275,
1299: 261, 277, 263, 264, 265, 0, -1, 268, 269, 270,
1300: 271, 272, 273, 274, 275, -1, 0, -1, -1, -1,
1301: 296, 297, 298, 299, -1, -1, -1, -1, -1, -1,
1302: -1, -1, -1, -1, -1, 296, 297, 298, 299, 261,
1303: -1, 263, 264, -1, -1, -1, 268, 269, 270, 271,
1304: 272, 273, 274, 275, 261, 277, 263, 264, -1, -1,
1305: -1, 268, 269, 270, 271, 272, 273, 274, 275, -1,
1306: -1, -1, -1, -1, 296, 297, 298, 299, -1, -1,
1307: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1308: -1, 298, 299, 261, -1, 263, 264, -1, -1, -1,
1309: 268, 269, 270, 271, 272, 273, 274, 275, 261, -1,
1310: 263, 264, -1, -1, -1, 268, 269, 270, 271, 272,
1311: 273, 274, 275, -1, 261, -1, 263, 264, -1, -1,
1312: 298, 299, -1, 261, -1, 263, 264, 261, -1, 263,
1313: 264, 261, -1, 263, 264, 298, 299, -1, 268, 269,
1314: 270, 271, 272, 273, -1, -1, -1, 261, -1, 263,
1315: 264, 298, 299, -1, 268, 269, 270, 271, 272, 273,
1316: 298, 299, -1, -1, 298, -1, -1, -1, 298, 299,
1317: 261, -1, 263, 264, -1, -1, -1, 268, 269, 270,
1318: 271, 272, 273, -1, 298, 299, -1, 261, -1, 263,
1319: 264, -1, -1, -1, 268, 269, 270, 271, 272, 273,
1320: -1, -1, -1, -1, -1, -1, -1, 298, 299, 261,
1321: -1, 263, 264, -1, -1, -1, 268, 269, 270, 271,
1322: 272, 273, -1, -1, 298, 299, 261, -1, 263, 264,
1323: -1, -1, -1, 268, 269, 261, -1, 263, 264, -1,
1324: -1, -1, 268, 269, -1, -1, 298, 299, -1, -1,
1325: -1, -1, -1, -1, -1, -1, 261, -1, 263, 264,
1326: -1, -1, -1, 298, 299, -1, -1, 261, -1, 263,
1327: 264, -1, 298, 299, 268, 269, -1, -1, -1, -1,
1328: -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
1329: -1, -1, -1, 298, -1, -1, -1, -1, -1, -1,
1330: -1, -1, -1, -1, 298, 299,
1331: };
1332: }
1333:
1334:
1335:
1336:
1337:
1338:
1339:
1340:
1341:
1342:
1343:
1344:
1345:
1346:
1347:
1348:
1349:
1350:
1351:
1352:
1353:
1354:
1355:
1356:
1357:
1358:
1359:
1360:
1361:
1362:
1363:
1364:
1365:
1366:
1367:
1368:
1369:
1370:
1371:
1372:
1373:
1374:
1375:
1376:
1377:
1378:
1379:
1380:
1381:
1382:
1383:
1384:
1385:
1386:
1387:
1388:
1389:
1390:
1391:
1392:
1393:
1394:
1395:
1396:
1397:
1398:
1399:
1400:
1401:
1402:
1403:
1404:
1405:
1406:
1407:
1408:
1409:
1410:
1411:
1412:
1413:
1414:
1415:
1416:
1417:
1418:
1419:
1420:
1421:
1422:
1423:
1424:
1425:
1426:
1427:
1428: protected static final class YyNameClass {
1429:
1430: public static final String yyName [] = {
1431: "end-of-file",null,null,null,null,null,null,null,null,null,null,null,
1432: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1433: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1434: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1435: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1436: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1437: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1438: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1439: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1440: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1441: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1442: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1443: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1444: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1445: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1446: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1447: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1448: null,null,null,null,null,null,null,null,null,null,null,null,null,null,
1449: null,null,null,null,null,null,null,"LITERAL","DIGITS","NAME","LP",
1450: "RP","LB","RB","COMMA","PIPE","SLASH","DOUBLE_SLASH","EQ","NE","GT",
1451: "LT","GTE","LTE","PLUS","MINUS","AT","STAR","DOLLAR","COLON",
1452: "DOUBLE_COLON","DOT","DOUBLE_DOT","ANCESTOR","ANCESTOR_OR_SELF",
1453: "ATTRIBUTE","CHILD","DESCENDANT","DESCENDANT_OR_SELF","FOLLOWING",
1454: "FOLLOWING_SIBLING","NAMESPACE","PARENT","PRECEDING",
1455: "PRECEDING_SIBLING","SELF","DIV","MOD","OR","AND","COMMENT",
1456: "PROCESSING_INSTRUCTION","TEXT","NODE","UNARY",
1457: };
1458: }
1459:
1460:
1461:
1462:
1463: }
1464: