0001: /* Generated By:JavaCC: Do not edit this line. SelectorParser.java */
0002: package org.activemq.selector.mockrunner;
0003:
0004: import java.io.StringReader;
0005: import java.util.ArrayList;
0006:
0007: import javax.jms.InvalidSelectorException;
0008:
0009: import org.activemq.filter.mockrunner.ArithmeticExpression;
0010: import org.activemq.filter.mockrunner.BooleanExpression;
0011: import org.activemq.filter.mockrunner.ComparisonExpression;
0012: import org.activemq.filter.mockrunner.ConstantExpression;
0013: import org.activemq.filter.mockrunner.Expression;
0014: import org.activemq.filter.mockrunner.ExpressionFilter;
0015: import org.activemq.filter.mockrunner.Filter;
0016: import org.activemq.filter.mockrunner.LogicExpression;
0017: import org.activemq.filter.mockrunner.PropertyExpression;
0018: import org.activemq.filter.mockrunner.UnaryExpression;
0019:
0020: /**
0021: * Alwin Ibba: Changed package
0022: * Alwin Ibba: Removed XPath cases in unaryExpr()
0023: * Alwin Ibba: Modification to be Java 1.3 compatible
0024: *
0025: * JMS Selector Parser generated by JavaCC
0026: *
0027: * Do not edit this .java file directly - it is autogenerated from SelectorParser.jj
0028: */
0029: public class SelectorParser implements SelectorParserConstants {
0030:
0031: public SelectorParser() {
0032: this (new StringReader(""));
0033: }
0034:
0035: public Filter parse(String sql) throws InvalidSelectorException {
0036: this .ReInit(new StringReader(sql));
0037:
0038: try {
0039: return this .JmsSelector();
0040: } catch (Throwable e) {
0041: throw (InvalidSelectorException) new InvalidSelectorException(
0042: "test");
0043: }
0044:
0045: }
0046:
0047: private BooleanExpression asBooleanExpression(Expression value)
0048: throws ParseException {
0049: if (value instanceof BooleanExpression) {
0050: return (BooleanExpression) value;
0051: }
0052: if (value instanceof PropertyExpression) {
0053: return UnaryExpression.createBooleanCast(value);
0054: }
0055: throw new ParseException(
0056: "Expression will not result in a boolean value: "
0057: + value);
0058: }
0059:
0060: // ----------------------------------------------------------------------------
0061: // Grammer
0062: // ----------------------------------------------------------------------------
0063: final public Filter JmsSelector() throws ParseException {
0064: Expression left = null;
0065: left = orExpression();
0066: {
0067: if (true)
0068: return new ExpressionFilter(asBooleanExpression(left));
0069: }
0070: throw new Error("Missing return statement in function");
0071: }
0072:
0073: final public Expression orExpression() throws ParseException {
0074: Expression left;
0075: Expression right;
0076: left = andExpression();
0077: label_1: while (true) {
0078: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0079: case OR:
0080: ;
0081: break;
0082: default:
0083: break label_1;
0084: }
0085: jj_consume_token(OR);
0086: right = andExpression();
0087: left = LogicExpression.createOR(asBooleanExpression(left),
0088: asBooleanExpression(right));
0089: }
0090: {
0091: if (true)
0092: return left;
0093: }
0094: throw new Error("Missing return statement in function");
0095: }
0096:
0097: final public Expression andExpression() throws ParseException {
0098: Expression left;
0099: Expression right;
0100: left = equalityExpression();
0101: label_2: while (true) {
0102: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0103: case AND:
0104: ;
0105: break;
0106: default:
0107: break label_2;
0108: }
0109: jj_consume_token(AND);
0110: right = equalityExpression();
0111: left = LogicExpression.createAND(asBooleanExpression(left),
0112: asBooleanExpression(right));
0113: }
0114: {
0115: if (true)
0116: return left;
0117: }
0118: throw new Error("Missing return statement in function");
0119: }
0120:
0121: final public Expression equalityExpression() throws ParseException {
0122: Expression left;
0123: Expression right;
0124: left = comparisonExpression();
0125: label_3: while (true) {
0126: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0127: case IS:
0128: case 28:
0129: case 29:
0130: ;
0131: break;
0132: default:
0133: break label_3;
0134: }
0135: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0136: case 28:
0137: jj_consume_token(28);
0138: right = comparisonExpression();
0139: left = ComparisonExpression.createEqual(left, right);
0140: break;
0141: case 29:
0142: jj_consume_token(29);
0143: right = comparisonExpression();
0144: left = ComparisonExpression.createNotEqual(left, right);
0145: break;
0146: default:
0147: if (jj_2_1(2)) {
0148: jj_consume_token(IS);
0149: jj_consume_token(NULL);
0150: left = ComparisonExpression.createIsNull(left);
0151: } else {
0152: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0153: case IS:
0154: jj_consume_token(IS);
0155: jj_consume_token(NOT);
0156: jj_consume_token(NULL);
0157: left = ComparisonExpression
0158: .createIsNotNull(left);
0159: break;
0160: default:
0161: jj_consume_token(-1);
0162: throw new ParseException();
0163: }
0164: }
0165: }
0166: }
0167: {
0168: if (true)
0169: return left;
0170: }
0171: throw new Error("Missing return statement in function");
0172: }
0173:
0174: final public Expression comparisonExpression()
0175: throws ParseException {
0176: Expression left;
0177: Expression right;
0178: Expression low;
0179: Expression high;
0180: String t, u;
0181: boolean not;
0182: ArrayList list;
0183: left = addExpression();
0184: label_4: while (true) {
0185: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0186: case NOT:
0187: case BETWEEN:
0188: case LIKE:
0189: case IN:
0190: case 30:
0191: case 31:
0192: case 32:
0193: case 33:
0194: ;
0195: break;
0196: default:
0197: break label_4;
0198: }
0199: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0200: case 30:
0201: jj_consume_token(30);
0202: right = addExpression();
0203: left = ComparisonExpression.createGreaterThan(left,
0204: right);
0205: break;
0206: case 31:
0207: jj_consume_token(31);
0208: right = addExpression();
0209: left = ComparisonExpression.createGreaterThanEqual(
0210: left, right);
0211: break;
0212: case 32:
0213: jj_consume_token(32);
0214: right = addExpression();
0215: left = ComparisonExpression.createLessThan(left, right);
0216: break;
0217: case 33:
0218: jj_consume_token(33);
0219: right = addExpression();
0220: left = ComparisonExpression.createLessThanEqual(left,
0221: right);
0222: break;
0223: case LIKE:
0224: u = null;
0225: jj_consume_token(LIKE);
0226: t = stringLitteral();
0227: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0228: case ESCAPE:
0229: jj_consume_token(ESCAPE);
0230: u = stringLitteral();
0231: break;
0232: default:
0233: ;
0234: }
0235: left = ComparisonExpression.createLike(left, t, u);
0236: break;
0237: default:
0238: if (jj_2_2(2)) {
0239: u = null;
0240: jj_consume_token(NOT);
0241: jj_consume_token(LIKE);
0242: t = stringLitteral();
0243: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0244: case ESCAPE:
0245: jj_consume_token(ESCAPE);
0246: u = stringLitteral();
0247: break;
0248: default:
0249: ;
0250: }
0251: left = ComparisonExpression.createNotLike(left, t,
0252: u);
0253: } else {
0254: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0255: case BETWEEN:
0256: jj_consume_token(BETWEEN);
0257: low = addExpression();
0258: jj_consume_token(AND);
0259: high = addExpression();
0260: left = ComparisonExpression.createBetween(left,
0261: low, high);
0262: break;
0263: default:
0264: if (jj_2_3(2)) {
0265: jj_consume_token(NOT);
0266: jj_consume_token(BETWEEN);
0267: low = addExpression();
0268: jj_consume_token(AND);
0269: high = addExpression();
0270: left = ComparisonExpression
0271: .createNotBetween(left, low, high);
0272: } else {
0273: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0274: case IN:
0275: jj_consume_token(IN);
0276: jj_consume_token(34);
0277: t = stringLitteral();
0278: list = new ArrayList();
0279: list.add(t);
0280: label_5: while (true) {
0281: switch ((jj_ntk == -1) ? jj_ntk()
0282: : jj_ntk) {
0283: case 35:
0284: ;
0285: break;
0286: default:
0287: break label_5;
0288: }
0289: jj_consume_token(35);
0290: t = stringLitteral();
0291: list.add(t);
0292: }
0293: jj_consume_token(36);
0294: left = ComparisonExpression
0295: .createInFilter(left, list);
0296: break;
0297: default:
0298: if (jj_2_4(2)) {
0299: jj_consume_token(NOT);
0300: jj_consume_token(IN);
0301: jj_consume_token(34);
0302: t = stringLitteral();
0303: list = new ArrayList();
0304: list.add(t);
0305: label_6: while (true) {
0306: switch ((jj_ntk == -1) ? jj_ntk()
0307: : jj_ntk) {
0308: case 35:
0309: ;
0310: break;
0311: default:
0312: break label_6;
0313: }
0314: jj_consume_token(35);
0315: t = stringLitteral();
0316: list.add(t);
0317: }
0318: jj_consume_token(36);
0319: left = ComparisonExpression
0320: .createNotInFilter(left,
0321: list);
0322: } else {
0323: jj_consume_token(-1);
0324: throw new ParseException();
0325: }
0326: }
0327: }
0328: }
0329: }
0330: }
0331: }
0332: {
0333: if (true)
0334: return left;
0335: }
0336: throw new Error("Missing return statement in function");
0337: }
0338:
0339: final public Expression addExpression() throws ParseException {
0340: Expression left;
0341: Expression right;
0342: left = multExpr();
0343: label_7: while (true) {
0344: if (jj_2_5(2147483647)) {
0345: ;
0346: } else {
0347: break label_7;
0348: }
0349: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0350: case 37:
0351: jj_consume_token(37);
0352: right = multExpr();
0353: left = ArithmeticExpression.createPlus(left, right);
0354: break;
0355: case 38:
0356: jj_consume_token(38);
0357: right = multExpr();
0358: left = ArithmeticExpression.createMinus(left, right);
0359: break;
0360: default:
0361: jj_consume_token(-1);
0362: throw new ParseException();
0363: }
0364: }
0365: {
0366: if (true)
0367: return left;
0368: }
0369: throw new Error("Missing return statement in function");
0370: }
0371:
0372: final public Expression multExpr() throws ParseException {
0373: Expression left;
0374: Expression right;
0375: left = unaryExpr();
0376: label_8: while (true) {
0377: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0378: case 39:
0379: case 40:
0380: case 41:
0381: ;
0382: break;
0383: default:
0384: break label_8;
0385: }
0386: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0387: case 39:
0388: jj_consume_token(39);
0389: right = unaryExpr();
0390: left = ArithmeticExpression.createMultiply(left, right);
0391: break;
0392: case 40:
0393: jj_consume_token(40);
0394: right = unaryExpr();
0395: left = ArithmeticExpression.createDivide(left, right);
0396: break;
0397: case 41:
0398: jj_consume_token(41);
0399: right = unaryExpr();
0400: left = ArithmeticExpression.createMod(left, right);
0401: break;
0402: default:
0403: jj_consume_token(-1);
0404: throw new ParseException();
0405: }
0406: }
0407: {
0408: if (true)
0409: return left;
0410: }
0411: throw new Error("Missing return statement in function");
0412: }
0413:
0414: final public Expression unaryExpr() throws ParseException {
0415: String s = null;
0416: Expression left = null;
0417: if (jj_2_6(2147483647)) {
0418: jj_consume_token(37);
0419: left = unaryExpr();
0420: } else {
0421: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0422: case 38:
0423: jj_consume_token(38);
0424: left = unaryExpr();
0425: left = UnaryExpression.createNegate(left);
0426: break;
0427: case NOT:
0428: jj_consume_token(NOT);
0429: left = unaryExpr();
0430: left = UnaryExpression
0431: .createNOT(asBooleanExpression(left));
0432: break;
0433: case TRUE:
0434: case FALSE:
0435: case NULL:
0436: case DECIMAL_LITERAL:
0437: case HEX_LITERAL:
0438: case OCTAL_LITERAL:
0439: case FLOATING_POINT_LITERAL:
0440: case STRING_LITERAL:
0441: case ID:
0442: case 34:
0443: left = primaryExpr();
0444: break;
0445: default:
0446: jj_consume_token(-1);
0447: throw new ParseException();
0448: }
0449: }
0450: {
0451: if (true)
0452: return left;
0453: }
0454: throw new Error("Missing return statement in function");
0455: }
0456:
0457: final public Expression primaryExpr() throws ParseException {
0458: Expression left = null;
0459: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0460: case TRUE:
0461: case FALSE:
0462: case NULL:
0463: case DECIMAL_LITERAL:
0464: case HEX_LITERAL:
0465: case OCTAL_LITERAL:
0466: case FLOATING_POINT_LITERAL:
0467: case STRING_LITERAL:
0468: left = literal();
0469: break;
0470: case ID:
0471: left = variable();
0472: break;
0473: case 34:
0474: jj_consume_token(34);
0475: left = orExpression();
0476: jj_consume_token(36);
0477: break;
0478: default:
0479: jj_consume_token(-1);
0480: throw new ParseException();
0481: }
0482: {
0483: if (true)
0484: return left;
0485: }
0486: throw new Error("Missing return statement in function");
0487: }
0488:
0489: final public ConstantExpression literal() throws ParseException {
0490: Token t;
0491: String s;
0492: ConstantExpression left = null;
0493: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0494: case STRING_LITERAL:
0495: s = stringLitteral();
0496: left = new ConstantExpression(s);
0497: break;
0498: case DECIMAL_LITERAL:
0499: t = jj_consume_token(DECIMAL_LITERAL);
0500: left = ConstantExpression.createFromDecimal(t.image);
0501: break;
0502: case HEX_LITERAL:
0503: t = jj_consume_token(HEX_LITERAL);
0504: left = ConstantExpression.createFromHex(t.image);
0505: break;
0506: case OCTAL_LITERAL:
0507: t = jj_consume_token(OCTAL_LITERAL);
0508: left = ConstantExpression.createFromOctal(t.image);
0509: break;
0510: case FLOATING_POINT_LITERAL:
0511: t = jj_consume_token(FLOATING_POINT_LITERAL);
0512: left = ConstantExpression.createFloat(t.image);
0513: break;
0514: case TRUE:
0515: jj_consume_token(TRUE);
0516: left = ConstantExpression.TRUE;
0517: break;
0518: case FALSE:
0519: jj_consume_token(FALSE);
0520: left = ConstantExpression.FALSE;
0521: break;
0522: case NULL:
0523: jj_consume_token(NULL);
0524: left = ConstantExpression.NULL;
0525: break;
0526: default:
0527: jj_consume_token(-1);
0528: throw new ParseException();
0529: }
0530: {
0531: if (true)
0532: return left;
0533: }
0534: throw new Error("Missing return statement in function");
0535: }
0536:
0537: final public String stringLitteral() throws ParseException {
0538: Token t;
0539: StringBuffer rc = new StringBuffer();
0540: boolean first = true;
0541: t = jj_consume_token(STRING_LITERAL);
0542: // Decode the sting value.
0543: String image = t.image;
0544: for (int i = 1; i < image.length() - 1; i++) {
0545: char c = image.charAt(i);
0546: if (c == '\'')
0547: i++;
0548: rc.append(c);
0549: }
0550: {
0551: if (true)
0552: return rc.toString();
0553: }
0554: throw new Error("Missing return statement in function");
0555: }
0556:
0557: final public PropertyExpression variable() throws ParseException {
0558: Token t;
0559: PropertyExpression left = null;
0560: t = jj_consume_token(ID);
0561: left = new PropertyExpression(t.image);
0562: {
0563: if (true)
0564: return left;
0565: }
0566: throw new Error("Missing return statement in function");
0567: }
0568:
0569: final private boolean jj_2_1(int xla) {
0570: jj_la = xla;
0571: jj_lastpos = jj_scanpos = token;
0572: return !jj_3_1();
0573: }
0574:
0575: final private boolean jj_2_2(int xla) {
0576: jj_la = xla;
0577: jj_lastpos = jj_scanpos = token;
0578: return !jj_3_2();
0579: }
0580:
0581: final private boolean jj_2_3(int xla) {
0582: jj_la = xla;
0583: jj_lastpos = jj_scanpos = token;
0584: return !jj_3_3();
0585: }
0586:
0587: final private boolean jj_2_4(int xla) {
0588: jj_la = xla;
0589: jj_lastpos = jj_scanpos = token;
0590: return !jj_3_4();
0591: }
0592:
0593: final private boolean jj_2_5(int xla) {
0594: jj_la = xla;
0595: jj_lastpos = jj_scanpos = token;
0596: return !jj_3_5();
0597: }
0598:
0599: final private boolean jj_2_6(int xla) {
0600: jj_la = xla;
0601: jj_lastpos = jj_scanpos = token;
0602: return !jj_3_6();
0603: }
0604:
0605: final private boolean jj_3R_53() {
0606: if (jj_scan_token(32))
0607: return true;
0608: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0609: return false;
0610: if (jj_3R_45())
0611: return true;
0612: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0613: return false;
0614: return false;
0615: }
0616:
0617: final private boolean jj_3R_29() {
0618: if (jj_scan_token(ID))
0619: return true;
0620: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0621: return false;
0622: return false;
0623: }
0624:
0625: final private boolean jj_3R_63() {
0626: if (jj_scan_token(35))
0627: return true;
0628: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0629: return false;
0630: if (jj_3R_23())
0631: return true;
0632: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0633: return false;
0634: return false;
0635: }
0636:
0637: final private boolean jj_3R_50() {
0638: Token xsp;
0639: xsp = jj_scanpos;
0640: if (jj_3R_58()) {
0641: jj_scanpos = xsp;
0642: if (jj_3R_59())
0643: return true;
0644: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0645: return false;
0646: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
0647: return false;
0648: return false;
0649: }
0650:
0651: final private boolean jj_3R_40() {
0652: if (jj_scan_token(OR))
0653: return true;
0654: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0655: return false;
0656: if (jj_3R_39())
0657: return true;
0658: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0659: return false;
0660: return false;
0661: }
0662:
0663: final private boolean jj_3R_52() {
0664: if (jj_scan_token(31))
0665: return true;
0666: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0667: return false;
0668: if (jj_3R_45())
0669: return true;
0670: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0671: return false;
0672: return false;
0673: }
0674:
0675: final private boolean jj_3R_27() {
0676: if (jj_scan_token(34))
0677: return true;
0678: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0679: return false;
0680: if (jj_3R_30())
0681: return true;
0682: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0683: return false;
0684: if (jj_scan_token(36))
0685: return true;
0686: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0687: return false;
0688: return false;
0689: }
0690:
0691: final private boolean jj_3R_26() {
0692: if (jj_3R_29())
0693: return true;
0694: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0695: return false;
0696: return false;
0697: }
0698:
0699: final private boolean jj_3R_51() {
0700: if (jj_scan_token(30))
0701: return true;
0702: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0703: return false;
0704: if (jj_3R_45())
0705: return true;
0706: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0707: return false;
0708: return false;
0709: }
0710:
0711: final private boolean jj_3R_46() {
0712: Token xsp;
0713: xsp = jj_scanpos;
0714: if (jj_3R_51()) {
0715: jj_scanpos = xsp;
0716: if (jj_3R_52()) {
0717: jj_scanpos = xsp;
0718: if (jj_3R_53()) {
0719: jj_scanpos = xsp;
0720: if (jj_3R_54()) {
0721: jj_scanpos = xsp;
0722: if (jj_3R_55()) {
0723: jj_scanpos = xsp;
0724: if (jj_3_2()) {
0725: jj_scanpos = xsp;
0726: if (jj_3R_56()) {
0727: jj_scanpos = xsp;
0728: if (jj_3_3()) {
0729: jj_scanpos = xsp;
0730: if (jj_3R_57()) {
0731: jj_scanpos = xsp;
0732: if (jj_3_4())
0733: return true;
0734: if (jj_la == 0
0735: && jj_scanpos == jj_lastpos)
0736: return false;
0737: } else if (jj_la == 0
0738: && jj_scanpos == jj_lastpos)
0739: return false;
0740: } else if (jj_la == 0
0741: && jj_scanpos == jj_lastpos)
0742: return false;
0743: } else if (jj_la == 0
0744: && jj_scanpos == jj_lastpos)
0745: return false;
0746: } else if (jj_la == 0
0747: && jj_scanpos == jj_lastpos)
0748: return false;
0749: } else if (jj_la == 0
0750: && jj_scanpos == jj_lastpos)
0751: return false;
0752: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
0753: return false;
0754: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
0755: return false;
0756: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
0757: return false;
0758: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
0759: return false;
0760: return false;
0761: }
0762:
0763: final private boolean jj_3R_25() {
0764: if (jj_3R_28())
0765: return true;
0766: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0767: return false;
0768: return false;
0769: }
0770:
0771: final private boolean jj_3R_45() {
0772: if (jj_3R_11())
0773: return true;
0774: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0775: return false;
0776: Token xsp;
0777: while (true) {
0778: xsp = jj_scanpos;
0779: if (jj_3R_50()) {
0780: jj_scanpos = xsp;
0781: break;
0782: }
0783: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0784: return false;
0785: }
0786: return false;
0787: }
0788:
0789: final private boolean jj_3R_30() {
0790: if (jj_3R_39())
0791: return true;
0792: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0793: return false;
0794: Token xsp;
0795: while (true) {
0796: xsp = jj_scanpos;
0797: if (jj_3R_40()) {
0798: jj_scanpos = xsp;
0799: break;
0800: }
0801: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0802: return false;
0803: }
0804: return false;
0805: }
0806:
0807: final private boolean jj_3R_24() {
0808: Token xsp;
0809: xsp = jj_scanpos;
0810: if (jj_3R_25()) {
0811: jj_scanpos = xsp;
0812: if (jj_3R_26()) {
0813: jj_scanpos = xsp;
0814: if (jj_3R_27())
0815: return true;
0816: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0817: return false;
0818: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
0819: return false;
0820: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
0821: return false;
0822: return false;
0823: }
0824:
0825: final private boolean jj_3R_19() {
0826: if (jj_3R_24())
0827: return true;
0828: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0829: return false;
0830: return false;
0831: }
0832:
0833: final private boolean jj_3R_23() {
0834: if (jj_scan_token(STRING_LITERAL))
0835: return true;
0836: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0837: return false;
0838: return false;
0839: }
0840:
0841: final private boolean jj_3R_62() {
0842: if (jj_scan_token(35))
0843: return true;
0844: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0845: return false;
0846: if (jj_3R_23())
0847: return true;
0848: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0849: return false;
0850: return false;
0851: }
0852:
0853: final private boolean jj_3R_18() {
0854: if (jj_scan_token(XQUERY))
0855: return true;
0856: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0857: return false;
0858: if (jj_3R_23())
0859: return true;
0860: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0861: return false;
0862: return false;
0863: }
0864:
0865: final private boolean jj_3R_43() {
0866: if (jj_3R_45())
0867: return true;
0868: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0869: return false;
0870: Token xsp;
0871: while (true) {
0872: xsp = jj_scanpos;
0873: if (jj_3R_46()) {
0874: jj_scanpos = xsp;
0875: break;
0876: }
0877: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0878: return false;
0879: }
0880: return false;
0881: }
0882:
0883: final private boolean jj_3R_61() {
0884: if (jj_scan_token(ESCAPE))
0885: return true;
0886: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0887: return false;
0888: if (jj_3R_23())
0889: return true;
0890: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0891: return false;
0892: return false;
0893: }
0894:
0895: final private boolean jj_3_4() {
0896: if (jj_scan_token(NOT))
0897: return true;
0898: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0899: return false;
0900: if (jj_scan_token(IN))
0901: return true;
0902: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0903: return false;
0904: if (jj_scan_token(34))
0905: return true;
0906: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0907: return false;
0908: if (jj_3R_23())
0909: return true;
0910: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0911: return false;
0912: Token xsp;
0913: while (true) {
0914: xsp = jj_scanpos;
0915: if (jj_3R_63()) {
0916: jj_scanpos = xsp;
0917: break;
0918: }
0919: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0920: return false;
0921: }
0922: if (jj_scan_token(36))
0923: return true;
0924: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0925: return false;
0926: return false;
0927: }
0928:
0929: final private boolean jj_3_6() {
0930: if (jj_scan_token(37))
0931: return true;
0932: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0933: return false;
0934: if (jj_3R_12())
0935: return true;
0936: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0937: return false;
0938: return false;
0939: }
0940:
0941: final private boolean jj_3R_17() {
0942: if (jj_scan_token(XPATH))
0943: return true;
0944: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0945: return false;
0946: if (jj_3R_23())
0947: return true;
0948: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0949: return false;
0950: return false;
0951: }
0952:
0953: final private boolean jj_3R_38() {
0954: if (jj_scan_token(NULL))
0955: return true;
0956: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0957: return false;
0958: return false;
0959: }
0960:
0961: final private boolean jj_3R_16() {
0962: if (jj_scan_token(NOT))
0963: return true;
0964: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0965: return false;
0966: if (jj_3R_12())
0967: return true;
0968: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0969: return false;
0970: return false;
0971: }
0972:
0973: final private boolean jj_3R_14() {
0974: if (jj_scan_token(37))
0975: return true;
0976: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0977: return false;
0978: if (jj_3R_12())
0979: return true;
0980: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0981: return false;
0982: return false;
0983: }
0984:
0985: final private boolean jj_3R_57() {
0986: if (jj_scan_token(IN))
0987: return true;
0988: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0989: return false;
0990: if (jj_scan_token(34))
0991: return true;
0992: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0993: return false;
0994: if (jj_3R_23())
0995: return true;
0996: if (jj_la == 0 && jj_scanpos == jj_lastpos)
0997: return false;
0998: Token xsp;
0999: while (true) {
1000: xsp = jj_scanpos;
1001: if (jj_3R_62()) {
1002: jj_scanpos = xsp;
1003: break;
1004: }
1005: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1006: return false;
1007: }
1008: if (jj_scan_token(36))
1009: return true;
1010: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1011: return false;
1012: return false;
1013: }
1014:
1015: final private boolean jj_3R_49() {
1016: if (jj_scan_token(IS))
1017: return true;
1018: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1019: return false;
1020: if (jj_scan_token(NOT))
1021: return true;
1022: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1023: return false;
1024: if (jj_scan_token(NULL))
1025: return true;
1026: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1027: return false;
1028: return false;
1029: }
1030:
1031: final private boolean jj_3R_15() {
1032: if (jj_scan_token(38))
1033: return true;
1034: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1035: return false;
1036: if (jj_3R_12())
1037: return true;
1038: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1039: return false;
1040: return false;
1041: }
1042:
1043: final private boolean jj_3R_37() {
1044: if (jj_scan_token(FALSE))
1045: return true;
1046: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1047: return false;
1048: return false;
1049: }
1050:
1051: final private boolean jj_3_1() {
1052: if (jj_scan_token(IS))
1053: return true;
1054: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1055: return false;
1056: if (jj_scan_token(NULL))
1057: return true;
1058: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1059: return false;
1060: return false;
1061: }
1062:
1063: final private boolean jj_3R_12() {
1064: Token xsp;
1065: xsp = jj_scanpos;
1066: if (jj_3R_14()) {
1067: jj_scanpos = xsp;
1068: if (jj_3R_15()) {
1069: jj_scanpos = xsp;
1070: if (jj_3R_16()) {
1071: jj_scanpos = xsp;
1072: if (jj_3R_17()) {
1073: jj_scanpos = xsp;
1074: if (jj_3R_18()) {
1075: jj_scanpos = xsp;
1076: if (jj_3R_19())
1077: return true;
1078: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1079: return false;
1080: } else if (jj_la == 0
1081: && jj_scanpos == jj_lastpos)
1082: return false;
1083: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1084: return false;
1085: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1086: return false;
1087: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1088: return false;
1089: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1090: return false;
1091: return false;
1092: }
1093:
1094: final private boolean jj_3R_36() {
1095: if (jj_scan_token(TRUE))
1096: return true;
1097: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1098: return false;
1099: return false;
1100: }
1101:
1102: final private boolean jj_3R_48() {
1103: if (jj_scan_token(29))
1104: return true;
1105: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1106: return false;
1107: if (jj_3R_43())
1108: return true;
1109: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1110: return false;
1111: return false;
1112: }
1113:
1114: final private boolean jj_3_3() {
1115: if (jj_scan_token(NOT))
1116: return true;
1117: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1118: return false;
1119: if (jj_scan_token(BETWEEN))
1120: return true;
1121: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1122: return false;
1123: if (jj_3R_45())
1124: return true;
1125: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1126: return false;
1127: if (jj_scan_token(AND))
1128: return true;
1129: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1130: return false;
1131: if (jj_3R_45())
1132: return true;
1133: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1134: return false;
1135: return false;
1136: }
1137:
1138: final private boolean jj_3R_47() {
1139: if (jj_scan_token(28))
1140: return true;
1141: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1142: return false;
1143: if (jj_3R_43())
1144: return true;
1145: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1146: return false;
1147: return false;
1148: }
1149:
1150: final private boolean jj_3R_44() {
1151: Token xsp;
1152: xsp = jj_scanpos;
1153: if (jj_3R_47()) {
1154: jj_scanpos = xsp;
1155: if (jj_3R_48()) {
1156: jj_scanpos = xsp;
1157: if (jj_3_1()) {
1158: jj_scanpos = xsp;
1159: if (jj_3R_49())
1160: return true;
1161: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1162: return false;
1163: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1164: return false;
1165: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1166: return false;
1167: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1168: return false;
1169: return false;
1170: }
1171:
1172: final private boolean jj_3R_35() {
1173: if (jj_scan_token(FLOATING_POINT_LITERAL))
1174: return true;
1175: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1176: return false;
1177: return false;
1178: }
1179:
1180: final private boolean jj_3R_56() {
1181: if (jj_scan_token(BETWEEN))
1182: return true;
1183: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1184: return false;
1185: if (jj_3R_45())
1186: return true;
1187: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1188: return false;
1189: if (jj_scan_token(AND))
1190: return true;
1191: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1192: return false;
1193: if (jj_3R_45())
1194: return true;
1195: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1196: return false;
1197: return false;
1198: }
1199:
1200: final private boolean jj_3R_60() {
1201: if (jj_scan_token(ESCAPE))
1202: return true;
1203: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1204: return false;
1205: if (jj_3R_23())
1206: return true;
1207: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1208: return false;
1209: return false;
1210: }
1211:
1212: final private boolean jj_3R_34() {
1213: if (jj_scan_token(OCTAL_LITERAL))
1214: return true;
1215: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1216: return false;
1217: return false;
1218: }
1219:
1220: final private boolean jj_3R_22() {
1221: if (jj_scan_token(41))
1222: return true;
1223: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1224: return false;
1225: if (jj_3R_12())
1226: return true;
1227: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1228: return false;
1229: return false;
1230: }
1231:
1232: final private boolean jj_3R_41() {
1233: if (jj_3R_43())
1234: return true;
1235: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1236: return false;
1237: Token xsp;
1238: while (true) {
1239: xsp = jj_scanpos;
1240: if (jj_3R_44()) {
1241: jj_scanpos = xsp;
1242: break;
1243: }
1244: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1245: return false;
1246: }
1247: return false;
1248: }
1249:
1250: final private boolean jj_3_2() {
1251: if (jj_scan_token(NOT))
1252: return true;
1253: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1254: return false;
1255: if (jj_scan_token(LIKE))
1256: return true;
1257: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1258: return false;
1259: if (jj_3R_23())
1260: return true;
1261: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1262: return false;
1263: Token xsp;
1264: xsp = jj_scanpos;
1265: if (jj_3R_61())
1266: jj_scanpos = xsp;
1267: else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1268: return false;
1269: return false;
1270: }
1271:
1272: final private boolean jj_3R_55() {
1273: if (jj_scan_token(LIKE))
1274: return true;
1275: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1276: return false;
1277: if (jj_3R_23())
1278: return true;
1279: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1280: return false;
1281: Token xsp;
1282: xsp = jj_scanpos;
1283: if (jj_3R_60())
1284: jj_scanpos = xsp;
1285: else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1286: return false;
1287: return false;
1288: }
1289:
1290: final private boolean jj_3R_33() {
1291: if (jj_scan_token(HEX_LITERAL))
1292: return true;
1293: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1294: return false;
1295: return false;
1296: }
1297:
1298: final private boolean jj_3R_21() {
1299: if (jj_scan_token(40))
1300: return true;
1301: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1302: return false;
1303: if (jj_3R_12())
1304: return true;
1305: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1306: return false;
1307: return false;
1308: }
1309:
1310: final private boolean jj_3R_13() {
1311: Token xsp;
1312: xsp = jj_scanpos;
1313: if (jj_3R_20()) {
1314: jj_scanpos = xsp;
1315: if (jj_3R_21()) {
1316: jj_scanpos = xsp;
1317: if (jj_3R_22())
1318: return true;
1319: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1320: return false;
1321: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1322: return false;
1323: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1324: return false;
1325: return false;
1326: }
1327:
1328: final private boolean jj_3R_20() {
1329: if (jj_scan_token(39))
1330: return true;
1331: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1332: return false;
1333: if (jj_3R_12())
1334: return true;
1335: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1336: return false;
1337: return false;
1338: }
1339:
1340: final private boolean jj_3R_42() {
1341: if (jj_scan_token(AND))
1342: return true;
1343: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1344: return false;
1345: if (jj_3R_41())
1346: return true;
1347: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1348: return false;
1349: return false;
1350: }
1351:
1352: final private boolean jj_3R_32() {
1353: if (jj_scan_token(DECIMAL_LITERAL))
1354: return true;
1355: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1356: return false;
1357: return false;
1358: }
1359:
1360: final private boolean jj_3R_11() {
1361: if (jj_3R_12())
1362: return true;
1363: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1364: return false;
1365: Token xsp;
1366: while (true) {
1367: xsp = jj_scanpos;
1368: if (jj_3R_13()) {
1369: jj_scanpos = xsp;
1370: break;
1371: }
1372: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1373: return false;
1374: }
1375: return false;
1376: }
1377:
1378: final private boolean jj_3R_10() {
1379: if (jj_scan_token(38))
1380: return true;
1381: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1382: return false;
1383: return false;
1384: }
1385:
1386: final private boolean jj_3R_31() {
1387: if (jj_3R_23())
1388: return true;
1389: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1390: return false;
1391: return false;
1392: }
1393:
1394: final private boolean jj_3R_9() {
1395: if (jj_scan_token(37))
1396: return true;
1397: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1398: return false;
1399: return false;
1400: }
1401:
1402: final private boolean jj_3R_59() {
1403: if (jj_scan_token(38))
1404: return true;
1405: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1406: return false;
1407: if (jj_3R_11())
1408: return true;
1409: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1410: return false;
1411: return false;
1412: }
1413:
1414: final private boolean jj_3R_39() {
1415: if (jj_3R_41())
1416: return true;
1417: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1418: return false;
1419: Token xsp;
1420: while (true) {
1421: xsp = jj_scanpos;
1422: if (jj_3R_42()) {
1423: jj_scanpos = xsp;
1424: break;
1425: }
1426: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1427: return false;
1428: }
1429: return false;
1430: }
1431:
1432: final private boolean jj_3_5() {
1433: Token xsp;
1434: xsp = jj_scanpos;
1435: if (jj_3R_9()) {
1436: jj_scanpos = xsp;
1437: if (jj_3R_10())
1438: return true;
1439: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1440: return false;
1441: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1442: return false;
1443: if (jj_3R_11())
1444: return true;
1445: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1446: return false;
1447: return false;
1448: }
1449:
1450: final private boolean jj_3R_28() {
1451: Token xsp;
1452: xsp = jj_scanpos;
1453: if (jj_3R_31()) {
1454: jj_scanpos = xsp;
1455: if (jj_3R_32()) {
1456: jj_scanpos = xsp;
1457: if (jj_3R_33()) {
1458: jj_scanpos = xsp;
1459: if (jj_3R_34()) {
1460: jj_scanpos = xsp;
1461: if (jj_3R_35()) {
1462: jj_scanpos = xsp;
1463: if (jj_3R_36()) {
1464: jj_scanpos = xsp;
1465: if (jj_3R_37()) {
1466: jj_scanpos = xsp;
1467: if (jj_3R_38())
1468: return true;
1469: if (jj_la == 0
1470: && jj_scanpos == jj_lastpos)
1471: return false;
1472: } else if (jj_la == 0
1473: && jj_scanpos == jj_lastpos)
1474: return false;
1475: } else if (jj_la == 0
1476: && jj_scanpos == jj_lastpos)
1477: return false;
1478: } else if (jj_la == 0
1479: && jj_scanpos == jj_lastpos)
1480: return false;
1481: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1482: return false;
1483: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1484: return false;
1485: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1486: return false;
1487: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1488: return false;
1489: return false;
1490: }
1491:
1492: final private boolean jj_3R_54() {
1493: if (jj_scan_token(33))
1494: return true;
1495: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1496: return false;
1497: if (jj_3R_45())
1498: return true;
1499: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1500: return false;
1501: return false;
1502: }
1503:
1504: final private boolean jj_3R_58() {
1505: if (jj_scan_token(37))
1506: return true;
1507: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1508: return false;
1509: if (jj_3R_11())
1510: return true;
1511: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1512: return false;
1513: return false;
1514: }
1515:
1516: public SelectorParserTokenManager token_source;
1517: SimpleCharStream jj_input_stream;
1518: public Token token, jj_nt;
1519: private int jj_ntk;
1520: private Token jj_scanpos, jj_lastpos;
1521: private int jj_la;
1522: public boolean lookingAhead = false;
1523: private boolean jj_semLA;
1524:
1525: public SelectorParser(java.io.InputStream stream) {
1526: jj_input_stream = new SimpleCharStream(stream, 1, 1);
1527: token_source = new SelectorParserTokenManager(jj_input_stream);
1528: token = new Token();
1529: jj_ntk = -1;
1530: }
1531:
1532: public void ReInit(java.io.InputStream stream) {
1533: jj_input_stream.ReInit(stream, 1, 1);
1534: token_source.ReInit(jj_input_stream);
1535: token = new Token();
1536: jj_ntk = -1;
1537: }
1538:
1539: public SelectorParser(java.io.Reader stream) {
1540: jj_input_stream = new SimpleCharStream(stream, 1, 1);
1541: token_source = new SelectorParserTokenManager(jj_input_stream);
1542: token = new Token();
1543: jj_ntk = -1;
1544: }
1545:
1546: public void ReInit(java.io.Reader stream) {
1547: jj_input_stream.ReInit(stream, 1, 1);
1548: token_source.ReInit(jj_input_stream);
1549: token = new Token();
1550: jj_ntk = -1;
1551: }
1552:
1553: public SelectorParser(SelectorParserTokenManager tm) {
1554: token_source = tm;
1555: token = new Token();
1556: jj_ntk = -1;
1557: }
1558:
1559: public void ReInit(SelectorParserTokenManager tm) {
1560: token_source = tm;
1561: token = new Token();
1562: jj_ntk = -1;
1563: }
1564:
1565: final private Token jj_consume_token(int kind)
1566: throws ParseException {
1567: Token oldToken;
1568: if ((oldToken = token).next != null)
1569: token = token.next;
1570: else
1571: token = token.next = token_source.getNextToken();
1572: jj_ntk = -1;
1573: if (token.kind == kind) {
1574: return token;
1575: }
1576: token = oldToken;
1577: throw generateParseException();
1578: }
1579:
1580: final private boolean jj_scan_token(int kind) {
1581: if (jj_scanpos == jj_lastpos) {
1582: jj_la--;
1583: if (jj_scanpos.next == null) {
1584: jj_lastpos = jj_scanpos = jj_scanpos.next = token_source
1585: .getNextToken();
1586: } else {
1587: jj_lastpos = jj_scanpos = jj_scanpos.next;
1588: }
1589: } else {
1590: jj_scanpos = jj_scanpos.next;
1591: }
1592: return (jj_scanpos.kind != kind);
1593: }
1594:
1595: final public Token getNextToken() {
1596: if (token.next != null)
1597: token = token.next;
1598: else
1599: token = token.next = token_source.getNextToken();
1600: jj_ntk = -1;
1601: return token;
1602: }
1603:
1604: final public Token getToken(int index) {
1605: Token t = lookingAhead ? jj_scanpos : token;
1606: for (int i = 0; i < index; i++) {
1607: if (t.next != null)
1608: t = t.next;
1609: else
1610: t = t.next = token_source.getNextToken();
1611: }
1612: return t;
1613: }
1614:
1615: final private int jj_ntk() {
1616: if ((jj_nt = token.next) == null)
1617: return (jj_ntk = (token.next = token_source.getNextToken()).kind);
1618: else
1619: return (jj_ntk = jj_nt.kind);
1620: }
1621:
1622: final public ParseException generateParseException() {
1623: Token errortok = token.next;
1624: int line = errortok.beginLine, column = errortok.beginColumn;
1625: String mess = (errortok.kind == 0) ? tokenImage[0]
1626: : errortok.image;
1627: return new ParseException("Parse error at line " + line
1628: + ", column " + column + ". Encountered: " + mess);
1629: }
1630:
1631: final public void enable_tracing() {
1632: }
1633:
1634: final public void disable_tracing() {
1635: }
1636:
1637: }
|