0001: /* Generated By:JavaCC: Do not edit this line. ELParser.java */
0002: package org.apache.commons.el.parser;
0003:
0004: import org.apache.commons.el.*;
0005: import java.util.ArrayList;
0006: import java.util.List;
0007:
0008: /**
0009: * Generated EL parser.
0010: *
0011: * @author Nathan Abramson
0012: * @author Shawn Bayern
0013: */
0014:
0015: public class ELParser implements ELParserConstants {
0016:
0017: public static void main(String args[]) throws ParseException {
0018: ELParser parser = new ELParser(System.in);
0019: parser.ExpressionString();
0020: }
0021:
0022: /*****************************************
0023: * GRAMMAR PRODUCTIONS *
0024: *****************************************/
0025:
0026: /**
0027: *
0028: * Returns a String if the expression string is a single String, an
0029: * Expression if the expression string is a single Expression, an
0030: * ExpressionString if it's a mixture of both.
0031: **/
0032: final public Object ExpressionString() throws ParseException {
0033: Object ret = "";
0034: List elems = null;
0035: Object elem;
0036: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0037: case NON_EXPRESSION_TEXT:
0038: ret = AttrValueString();
0039: break;
0040: case START_EXPRESSION:
0041: ret = AttrValueExpression();
0042: break;
0043: default:
0044: jj_la1[0] = jj_gen;
0045: jj_consume_token(-1);
0046: throw new ParseException();
0047: }
0048: label_1: while (true) {
0049: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0050: case NON_EXPRESSION_TEXT:
0051: case START_EXPRESSION:
0052: ;
0053: break;
0054: default:
0055: jj_la1[1] = jj_gen;
0056: break label_1;
0057: }
0058: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0059: case NON_EXPRESSION_TEXT:
0060: elem = AttrValueString();
0061: break;
0062: case START_EXPRESSION:
0063: elem = AttrValueExpression();
0064: break;
0065: default:
0066: jj_la1[2] = jj_gen;
0067: jj_consume_token(-1);
0068: throw new ParseException();
0069: }
0070: if (elems == null) {
0071: elems = new ArrayList();
0072: elems.add(ret);
0073: }
0074: elems.add(elem);
0075: }
0076: if (elems != null) {
0077: ret = new ExpressionString(elems.toArray());
0078: }
0079: {
0080: if (true)
0081: return ret;
0082: }
0083: throw new Error("Missing return statement in function");
0084: }
0085:
0086: final public String AttrValueString() throws ParseException {
0087: Token t;
0088: t = jj_consume_token(NON_EXPRESSION_TEXT);
0089: {
0090: if (true)
0091: return t.image;
0092: }
0093: throw new Error("Missing return statement in function");
0094: }
0095:
0096: final public Expression AttrValueExpression() throws ParseException {
0097: Expression exp;
0098: jj_consume_token(START_EXPRESSION);
0099: exp = Expression();
0100: jj_consume_token(END_EXPRESSION);
0101: {
0102: if (true)
0103: return exp;
0104: }
0105: throw new Error("Missing return statement in function");
0106: }
0107:
0108: final public Expression Expression() throws ParseException {
0109: Expression ret;
0110: if (jj_2_1(2147483647)) {
0111: ret = ConditionalExpression();
0112: } else {
0113: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0114: case INTEGER_LITERAL:
0115: case FLOATING_POINT_LITERAL:
0116: case STRING_LITERAL:
0117: case TRUE:
0118: case FALSE:
0119: case NULL:
0120: case LPAREN:
0121: case MINUS:
0122: case NOT1:
0123: case NOT2:
0124: case EMPTY:
0125: case IDENTIFIER:
0126: ret = OrExpression();
0127: break;
0128: default:
0129: jj_la1[3] = jj_gen;
0130: jj_consume_token(-1);
0131: throw new ParseException();
0132: }
0133: }
0134: {
0135: if (true)
0136: return ret;
0137: }
0138: throw new Error("Missing return statement in function");
0139: }
0140:
0141: final public Expression OrExpression() throws ParseException {
0142: Expression startExpression;
0143: BinaryOperator operator;
0144: Expression expression;
0145: List operators = null;
0146: List expressions = null;
0147: startExpression = AndExpression();
0148: label_2: while (true) {
0149: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0150: case OR1:
0151: case OR2:
0152: ;
0153: break;
0154: default:
0155: jj_la1[4] = jj_gen;
0156: break label_2;
0157: }
0158: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0159: case OR1:
0160: jj_consume_token(OR1);
0161: break;
0162: case OR2:
0163: jj_consume_token(OR2);
0164: break;
0165: default:
0166: jj_la1[5] = jj_gen;
0167: jj_consume_token(-1);
0168: throw new ParseException();
0169: }
0170: operator = OrOperator.SINGLETON;
0171: expression = AndExpression();
0172: if (operators == null) {
0173: operators = new ArrayList();
0174: expressions = new ArrayList();
0175: }
0176: operators.add(operator);
0177: expressions.add(expression);
0178: }
0179: if (operators != null) {
0180: {
0181: if (true)
0182: return new BinaryOperatorExpression(
0183: startExpression, operators, expressions);
0184: }
0185: } else {
0186: {
0187: if (true)
0188: return startExpression;
0189: }
0190: }
0191: throw new Error("Missing return statement in function");
0192: }
0193:
0194: final public Expression AndExpression() throws ParseException {
0195: Expression startExpression;
0196: BinaryOperator operator;
0197: Expression expression;
0198: List operators = null;
0199: List expressions = null;
0200: startExpression = EqualityExpression();
0201: label_3: while (true) {
0202: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0203: case AND1:
0204: case AND2:
0205: ;
0206: break;
0207: default:
0208: jj_la1[6] = jj_gen;
0209: break label_3;
0210: }
0211: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0212: case AND1:
0213: jj_consume_token(AND1);
0214: break;
0215: case AND2:
0216: jj_consume_token(AND2);
0217: break;
0218: default:
0219: jj_la1[7] = jj_gen;
0220: jj_consume_token(-1);
0221: throw new ParseException();
0222: }
0223: operator = AndOperator.SINGLETON;
0224: expression = EqualityExpression();
0225: if (operators == null) {
0226: operators = new ArrayList();
0227: expressions = new ArrayList();
0228: }
0229: operators.add(operator);
0230: expressions.add(expression);
0231: }
0232: if (operators != null) {
0233: {
0234: if (true)
0235: return new BinaryOperatorExpression(
0236: startExpression, operators, expressions);
0237: }
0238: } else {
0239: {
0240: if (true)
0241: return startExpression;
0242: }
0243: }
0244: throw new Error("Missing return statement in function");
0245: }
0246:
0247: final public Expression EqualityExpression() throws ParseException {
0248: Expression startExpression;
0249: BinaryOperator operator;
0250: Expression expression;
0251: List operators = null;
0252: List expressions = null;
0253: startExpression = RelationalExpression();
0254: label_4: while (true) {
0255: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0256: case EQ1:
0257: case EQ2:
0258: case NE1:
0259: case NE2:
0260: ;
0261: break;
0262: default:
0263: jj_la1[8] = jj_gen;
0264: break label_4;
0265: }
0266: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0267: case EQ1:
0268: case EQ2:
0269: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0270: case EQ1:
0271: jj_consume_token(EQ1);
0272: break;
0273: case EQ2:
0274: jj_consume_token(EQ2);
0275: break;
0276: default:
0277: jj_la1[9] = jj_gen;
0278: jj_consume_token(-1);
0279: throw new ParseException();
0280: }
0281: operator = EqualsOperator.SINGLETON;
0282: break;
0283: case NE1:
0284: case NE2:
0285: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0286: case NE1:
0287: jj_consume_token(NE1);
0288: break;
0289: case NE2:
0290: jj_consume_token(NE2);
0291: break;
0292: default:
0293: jj_la1[10] = jj_gen;
0294: jj_consume_token(-1);
0295: throw new ParseException();
0296: }
0297: operator = NotEqualsOperator.SINGLETON;
0298: break;
0299: default:
0300: jj_la1[11] = jj_gen;
0301: jj_consume_token(-1);
0302: throw new ParseException();
0303: }
0304: expression = RelationalExpression();
0305: if (operators == null) {
0306: operators = new ArrayList();
0307: expressions = new ArrayList();
0308: }
0309: operators.add(operator);
0310: expressions.add(expression);
0311: }
0312: if (operators != null) {
0313: {
0314: if (true)
0315: return new BinaryOperatorExpression(
0316: startExpression, operators, expressions);
0317: }
0318: } else {
0319: {
0320: if (true)
0321: return startExpression;
0322: }
0323: }
0324: throw new Error("Missing return statement in function");
0325: }
0326:
0327: final public Expression RelationalExpression()
0328: throws ParseException {
0329: Expression startExpression;
0330: BinaryOperator operator;
0331: Expression expression;
0332: List operators = null;
0333: List expressions = null;
0334: startExpression = AddExpression();
0335: label_5: while (true) {
0336: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0337: case GT1:
0338: case GT2:
0339: case LT1:
0340: case LT2:
0341: case LE1:
0342: case LE2:
0343: case GE1:
0344: case GE2:
0345: ;
0346: break;
0347: default:
0348: jj_la1[12] = jj_gen;
0349: break label_5;
0350: }
0351: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0352: case LT1:
0353: case LT2:
0354: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0355: case LT1:
0356: jj_consume_token(LT1);
0357: break;
0358: case LT2:
0359: jj_consume_token(LT2);
0360: break;
0361: default:
0362: jj_la1[13] = jj_gen;
0363: jj_consume_token(-1);
0364: throw new ParseException();
0365: }
0366: operator = LessThanOperator.SINGLETON;
0367: break;
0368: case GT1:
0369: case GT2:
0370: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0371: case GT1:
0372: jj_consume_token(GT1);
0373: break;
0374: case GT2:
0375: jj_consume_token(GT2);
0376: break;
0377: default:
0378: jj_la1[14] = jj_gen;
0379: jj_consume_token(-1);
0380: throw new ParseException();
0381: }
0382: operator = GreaterThanOperator.SINGLETON;
0383: break;
0384: case GE1:
0385: case GE2:
0386: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0387: case GE1:
0388: jj_consume_token(GE1);
0389: break;
0390: case GE2:
0391: jj_consume_token(GE2);
0392: break;
0393: default:
0394: jj_la1[15] = jj_gen;
0395: jj_consume_token(-1);
0396: throw new ParseException();
0397: }
0398: operator = GreaterThanOrEqualsOperator.SINGLETON;
0399: break;
0400: case LE1:
0401: case LE2:
0402: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0403: case LE1:
0404: jj_consume_token(LE1);
0405: break;
0406: case LE2:
0407: jj_consume_token(LE2);
0408: break;
0409: default:
0410: jj_la1[16] = jj_gen;
0411: jj_consume_token(-1);
0412: throw new ParseException();
0413: }
0414: operator = LessThanOrEqualsOperator.SINGLETON;
0415: break;
0416: default:
0417: jj_la1[17] = jj_gen;
0418: jj_consume_token(-1);
0419: throw new ParseException();
0420: }
0421: expression = AddExpression();
0422: if (operators == null) {
0423: operators = new ArrayList();
0424: expressions = new ArrayList();
0425: }
0426: operators.add(operator);
0427: expressions.add(expression);
0428: }
0429: if (operators != null) {
0430: {
0431: if (true)
0432: return new BinaryOperatorExpression(
0433: startExpression, operators, expressions);
0434: }
0435: } else {
0436: {
0437: if (true)
0438: return startExpression;
0439: }
0440: }
0441: throw new Error("Missing return statement in function");
0442: }
0443:
0444: final public Expression AddExpression() throws ParseException {
0445: Expression startExpression;
0446: BinaryOperator operator;
0447: Expression expression;
0448: List operators = null;
0449: List expressions = null;
0450: startExpression = MultiplyExpression();
0451: label_6: while (true) {
0452: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0453: case PLUS:
0454: case MINUS:
0455: ;
0456: break;
0457: default:
0458: jj_la1[18] = jj_gen;
0459: break label_6;
0460: }
0461: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0462: case PLUS:
0463: jj_consume_token(PLUS);
0464: operator = PlusOperator.SINGLETON;
0465: break;
0466: case MINUS:
0467: jj_consume_token(MINUS);
0468: operator = MinusOperator.SINGLETON;
0469: break;
0470: default:
0471: jj_la1[19] = jj_gen;
0472: jj_consume_token(-1);
0473: throw new ParseException();
0474: }
0475: expression = MultiplyExpression();
0476: if (operators == null) {
0477: operators = new ArrayList();
0478: expressions = new ArrayList();
0479: }
0480: operators.add(operator);
0481: expressions.add(expression);
0482: }
0483: if (operators != null) {
0484: {
0485: if (true)
0486: return new BinaryOperatorExpression(
0487: startExpression, operators, expressions);
0488: }
0489: } else {
0490: {
0491: if (true)
0492: return startExpression;
0493: }
0494: }
0495: throw new Error("Missing return statement in function");
0496: }
0497:
0498: final public Expression MultiplyExpression() throws ParseException {
0499: Expression startExpression;
0500: BinaryOperator operator;
0501: Expression expression;
0502: List operators = null;
0503: List expressions = null;
0504: startExpression = UnaryExpression();
0505: label_7: while (true) {
0506: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0507: case MULTIPLY:
0508: case DIVIDE1:
0509: case DIVIDE2:
0510: case MODULUS1:
0511: case MODULUS2:
0512: ;
0513: break;
0514: default:
0515: jj_la1[20] = jj_gen;
0516: break label_7;
0517: }
0518: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0519: case MULTIPLY:
0520: jj_consume_token(MULTIPLY);
0521: operator = MultiplyOperator.SINGLETON;
0522: break;
0523: case DIVIDE1:
0524: case DIVIDE2:
0525: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0526: case DIVIDE1:
0527: jj_consume_token(DIVIDE1);
0528: break;
0529: case DIVIDE2:
0530: jj_consume_token(DIVIDE2);
0531: break;
0532: default:
0533: jj_la1[21] = jj_gen;
0534: jj_consume_token(-1);
0535: throw new ParseException();
0536: }
0537: operator = DivideOperator.SINGLETON;
0538: break;
0539: case MODULUS1:
0540: case MODULUS2:
0541: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0542: case MODULUS1:
0543: jj_consume_token(MODULUS1);
0544: break;
0545: case MODULUS2:
0546: jj_consume_token(MODULUS2);
0547: break;
0548: default:
0549: jj_la1[22] = jj_gen;
0550: jj_consume_token(-1);
0551: throw new ParseException();
0552: }
0553: operator = ModulusOperator.SINGLETON;
0554: break;
0555: default:
0556: jj_la1[23] = jj_gen;
0557: jj_consume_token(-1);
0558: throw new ParseException();
0559: }
0560: expression = UnaryExpression();
0561: if (operators == null) {
0562: operators = new ArrayList();
0563: expressions = new ArrayList();
0564: }
0565: operators.add(operator);
0566: expressions.add(expression);
0567: }
0568: if (operators != null) {
0569: {
0570: if (true)
0571: return new BinaryOperatorExpression(
0572: startExpression, operators, expressions);
0573: }
0574: } else {
0575: {
0576: if (true)
0577: return startExpression;
0578: }
0579: }
0580: throw new Error("Missing return statement in function");
0581: }
0582:
0583: final public Expression ConditionalExpression()
0584: throws ParseException {
0585: Expression condition, trueBranch, falseBranch;
0586: condition = OrExpression();
0587: jj_consume_token(COND);
0588: trueBranch = Expression();
0589: jj_consume_token(COLON);
0590: falseBranch = Expression();
0591: {
0592: if (true)
0593: return new ConditionalExpression(condition, trueBranch,
0594: falseBranch);
0595: }
0596: throw new Error("Missing return statement in function");
0597: }
0598:
0599: final public Expression UnaryExpression() throws ParseException {
0600: Expression expression;
0601: UnaryOperator singleOperator = null;
0602: UnaryOperator operator;
0603: List operators = null;
0604: label_8: while (true) {
0605: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0606: case MINUS:
0607: case NOT1:
0608: case NOT2:
0609: case EMPTY:
0610: ;
0611: break;
0612: default:
0613: jj_la1[24] = jj_gen;
0614: break label_8;
0615: }
0616: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0617: case NOT1:
0618: case NOT2:
0619: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0620: case NOT1:
0621: jj_consume_token(NOT1);
0622: break;
0623: case NOT2:
0624: jj_consume_token(NOT2);
0625: break;
0626: default:
0627: jj_la1[25] = jj_gen;
0628: jj_consume_token(-1);
0629: throw new ParseException();
0630: }
0631: operator = NotOperator.SINGLETON;
0632: break;
0633: case MINUS:
0634: jj_consume_token(MINUS);
0635: operator = UnaryMinusOperator.SINGLETON;
0636: break;
0637: case EMPTY:
0638: jj_consume_token(EMPTY);
0639: operator = EmptyOperator.SINGLETON;
0640: break;
0641: default:
0642: jj_la1[26] = jj_gen;
0643: jj_consume_token(-1);
0644: throw new ParseException();
0645: }
0646: if (singleOperator == null) {
0647: singleOperator = operator;
0648: } else if (operators == null) {
0649: operators = new ArrayList();
0650: operators.add(singleOperator);
0651: operators.add(operator);
0652: } else {
0653: operators.add(operator);
0654: }
0655: }
0656: expression = Value();
0657: if (operators != null) {
0658: {
0659: if (true)
0660: return new UnaryOperatorExpression(null, operators,
0661: expression);
0662: }
0663: } else if (singleOperator != null) {
0664: {
0665: if (true)
0666: return new UnaryOperatorExpression(singleOperator,
0667: null, expression);
0668: }
0669: } else {
0670: {
0671: if (true)
0672: return expression;
0673: }
0674: }
0675: throw new Error("Missing return statement in function");
0676: }
0677:
0678: final public Expression Value() throws ParseException {
0679: Expression prefix;
0680: ValueSuffix suffix;
0681: List suffixes = null;
0682: prefix = ValuePrefix();
0683: label_9: while (true) {
0684: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0685: case DOT:
0686: case LBRACKET:
0687: ;
0688: break;
0689: default:
0690: jj_la1[27] = jj_gen;
0691: break label_9;
0692: }
0693: suffix = ValueSuffix();
0694: if (suffixes == null) {
0695: suffixes = new ArrayList();
0696: }
0697: suffixes.add(suffix);
0698: }
0699: if (suffixes == null) {
0700: {
0701: if (true)
0702: return prefix;
0703: }
0704: } else {
0705: {
0706: if (true)
0707: return new ComplexValue(prefix, suffixes);
0708: }
0709: }
0710: throw new Error("Missing return statement in function");
0711: }
0712:
0713: /**
0714: * This is an element that can start a value
0715: **/
0716: final public Expression ValuePrefix() throws ParseException {
0717: Expression ret;
0718: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0719: case INTEGER_LITERAL:
0720: case FLOATING_POINT_LITERAL:
0721: case STRING_LITERAL:
0722: case TRUE:
0723: case FALSE:
0724: case NULL:
0725: ret = Literal();
0726: break;
0727: case LPAREN:
0728: jj_consume_token(LPAREN);
0729: ret = Expression();
0730: jj_consume_token(RPAREN);
0731: break;
0732: default:
0733: jj_la1[28] = jj_gen;
0734: if (jj_2_2(2147483647)) {
0735: ret = FunctionInvocation();
0736: } else {
0737: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0738: case IDENTIFIER:
0739: ret = NamedValue();
0740: break;
0741: default:
0742: jj_la1[29] = jj_gen;
0743: jj_consume_token(-1);
0744: throw new ParseException();
0745: }
0746: }
0747: }
0748: {
0749: if (true)
0750: return ret;
0751: }
0752: throw new Error("Missing return statement in function");
0753: }
0754:
0755: final public NamedValue NamedValue() throws ParseException {
0756: Token t;
0757: t = jj_consume_token(IDENTIFIER);
0758: {
0759: if (true)
0760: return new NamedValue(t.image);
0761: }
0762: throw new Error("Missing return statement in function");
0763: }
0764:
0765: final public FunctionInvocation FunctionInvocation()
0766: throws ParseException {
0767: String qualifiedName;
0768: List argumentList = new ArrayList();
0769: Expression exp;
0770: qualifiedName = QualifiedName();
0771: jj_consume_token(LPAREN);
0772: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0773: case INTEGER_LITERAL:
0774: case FLOATING_POINT_LITERAL:
0775: case STRING_LITERAL:
0776: case TRUE:
0777: case FALSE:
0778: case NULL:
0779: case LPAREN:
0780: case MINUS:
0781: case NOT1:
0782: case NOT2:
0783: case EMPTY:
0784: case IDENTIFIER:
0785: exp = Expression();
0786: argumentList.add(exp);
0787: label_10: while (true) {
0788: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0789: case COMMA:
0790: ;
0791: break;
0792: default:
0793: jj_la1[30] = jj_gen;
0794: break label_10;
0795: }
0796: jj_consume_token(COMMA);
0797: exp = Expression();
0798: argumentList.add(exp);
0799: }
0800: break;
0801: default:
0802: jj_la1[31] = jj_gen;
0803: ;
0804: }
0805: jj_consume_token(RPAREN);
0806: {
0807: if (true)
0808: return new FunctionInvocation(qualifiedName,
0809: argumentList);
0810: }
0811: throw new Error("Missing return statement in function");
0812: }
0813:
0814: final public ValueSuffix ValueSuffix() throws ParseException {
0815: ValueSuffix suffix;
0816: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0817: case DOT:
0818: suffix = PropertySuffix();
0819: break;
0820: case LBRACKET:
0821: suffix = ArraySuffix();
0822: break;
0823: default:
0824: jj_la1[32] = jj_gen;
0825: jj_consume_token(-1);
0826: throw new ParseException();
0827: }
0828: {
0829: if (true)
0830: return suffix;
0831: }
0832: throw new Error("Missing return statement in function");
0833: }
0834:
0835: final public PropertySuffix PropertySuffix() throws ParseException {
0836: Token t;
0837: String property;
0838: jj_consume_token(DOT);
0839: property = Identifier();
0840: {
0841: if (true)
0842: return new PropertySuffix(property);
0843: }
0844: throw new Error("Missing return statement in function");
0845: }
0846:
0847: final public ArraySuffix ArraySuffix() throws ParseException {
0848: Expression index;
0849: jj_consume_token(LBRACKET);
0850: index = Expression();
0851: jj_consume_token(RBRACKET);
0852: {
0853: if (true)
0854: return new ArraySuffix(index);
0855: }
0856: throw new Error("Missing return statement in function");
0857: }
0858:
0859: final public Literal Literal() throws ParseException {
0860: Literal ret;
0861: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0862: case TRUE:
0863: case FALSE:
0864: ret = BooleanLiteral();
0865: break;
0866: case INTEGER_LITERAL:
0867: ret = IntegerLiteral();
0868: break;
0869: case FLOATING_POINT_LITERAL:
0870: ret = FloatingPointLiteral();
0871: break;
0872: case STRING_LITERAL:
0873: ret = StringLiteral();
0874: break;
0875: case NULL:
0876: ret = NullLiteral();
0877: break;
0878: default:
0879: jj_la1[33] = jj_gen;
0880: jj_consume_token(-1);
0881: throw new ParseException();
0882: }
0883: {
0884: if (true)
0885: return ret;
0886: }
0887: throw new Error("Missing return statement in function");
0888: }
0889:
0890: final public BooleanLiteral BooleanLiteral() throws ParseException {
0891: switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
0892: case TRUE:
0893: jj_consume_token(TRUE);
0894: {
0895: if (true)
0896: return BooleanLiteral.TRUE;
0897: }
0898: break;
0899: case FALSE:
0900: jj_consume_token(FALSE);
0901: {
0902: if (true)
0903: return BooleanLiteral.FALSE;
0904: }
0905: break;
0906: default:
0907: jj_la1[34] = jj_gen;
0908: jj_consume_token(-1);
0909: throw new ParseException();
0910: }
0911: throw new Error("Missing return statement in function");
0912: }
0913:
0914: final public StringLiteral StringLiteral() throws ParseException {
0915: Token t;
0916: t = jj_consume_token(STRING_LITERAL);
0917: {
0918: if (true)
0919: return StringLiteral.fromToken(t.image);
0920: }
0921: throw new Error("Missing return statement in function");
0922: }
0923:
0924: final public IntegerLiteral IntegerLiteral() throws ParseException {
0925: Token t;
0926: t = jj_consume_token(INTEGER_LITERAL);
0927: {
0928: if (true)
0929: return new IntegerLiteral(t.image);
0930: }
0931: throw new Error("Missing return statement in function");
0932: }
0933:
0934: final public FloatingPointLiteral FloatingPointLiteral()
0935: throws ParseException {
0936: Token t;
0937: t = jj_consume_token(FLOATING_POINT_LITERAL);
0938: {
0939: if (true)
0940: return new FloatingPointLiteral(t.image);
0941: }
0942: throw new Error("Missing return statement in function");
0943: }
0944:
0945: final public NullLiteral NullLiteral() throws ParseException {
0946: jj_consume_token(NULL);
0947: {
0948: if (true)
0949: return NullLiteral.SINGLETON;
0950: }
0951: throw new Error("Missing return statement in function");
0952: }
0953:
0954: final public String Identifier() throws ParseException {
0955: Token t;
0956: t = jj_consume_token(IDENTIFIER);
0957: {
0958: if (true)
0959: return t.image;
0960: }
0961: throw new Error("Missing return statement in function");
0962: }
0963:
0964: final public String QualifiedName() throws ParseException {
0965: String prefix = null, localPart = null;
0966: if (jj_2_3(2147483647)) {
0967: prefix = Identifier();
0968: jj_consume_token(COLON);
0969: } else {
0970: ;
0971: }
0972: localPart = Identifier();
0973: if (prefix == null) {
0974: if (true)
0975: return localPart;
0976: } else {
0977: if (true)
0978: return prefix + ":" + localPart;
0979: }
0980: throw new Error("Missing return statement in function");
0981: }
0982:
0983: final private boolean jj_2_1(int xla) {
0984: jj_la = xla;
0985: jj_lastpos = jj_scanpos = token;
0986: boolean retval = !jj_3_1();
0987: jj_save(0, xla);
0988: return retval;
0989: }
0990:
0991: final private boolean jj_2_2(int xla) {
0992: jj_la = xla;
0993: jj_lastpos = jj_scanpos = token;
0994: boolean retval = !jj_3_2();
0995: jj_save(1, xla);
0996: return retval;
0997: }
0998:
0999: final private boolean jj_2_3(int xla) {
1000: jj_la = xla;
1001: jj_lastpos = jj_scanpos = token;
1002: boolean retval = !jj_3_3();
1003: jj_save(2, xla);
1004: return retval;
1005: }
1006:
1007: final private boolean jj_3R_42() {
1008: if (jj_scan_token(NE2))
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_91() {
1016: if (jj_scan_token(FLOATING_POINT_LITERAL))
1017: return true;
1018: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1019: return false;
1020: return false;
1021: }
1022:
1023: final private boolean jj_3R_40() {
1024: if (jj_scan_token(EQ2))
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_41() {
1032: if (jj_scan_token(NE1))
1033: return true;
1034: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1035: return false;
1036: return false;
1037: }
1038:
1039: final private boolean jj_3R_32() {
1040: Token xsp;
1041: xsp = jj_scanpos;
1042: if (jj_3R_41()) {
1043: jj_scanpos = xsp;
1044: if (jj_3R_42())
1045: return true;
1046: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1047: return false;
1048: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1049: return false;
1050: return false;
1051: }
1052:
1053: final private boolean jj_3R_90() {
1054: if (jj_scan_token(INTEGER_LITERAL))
1055: return true;
1056: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1057: return false;
1058: return false;
1059: }
1060:
1061: final private boolean jj_3R_39() {
1062: if (jj_scan_token(EQ1))
1063: return true;
1064: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1065: return false;
1066: return false;
1067: }
1068:
1069: final private boolean jj_3R_31() {
1070: Token xsp;
1071: xsp = jj_scanpos;
1072: if (jj_3R_39()) {
1073: jj_scanpos = xsp;
1074: if (jj_3R_40())
1075: return true;
1076: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1077: return false;
1078: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1079: return false;
1080: return false;
1081: }
1082:
1083: final private boolean jj_3R_26() {
1084: Token xsp;
1085: xsp = jj_scanpos;
1086: if (jj_3R_31()) {
1087: jj_scanpos = xsp;
1088: if (jj_3R_32())
1089: return true;
1090: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1091: return false;
1092: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1093: return false;
1094: if (jj_3R_25())
1095: return true;
1096: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1097: return false;
1098: return false;
1099: }
1100:
1101: final private boolean jj_3R_70() {
1102: if (jj_scan_token(NOT2))
1103: return true;
1104: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1105: return false;
1106: return false;
1107: }
1108:
1109: final private boolean jj_3R_21() {
1110: if (jj_3R_25())
1111: return true;
1112: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1113: return false;
1114: Token xsp;
1115: while (true) {
1116: xsp = jj_scanpos;
1117: if (jj_3R_26()) {
1118: jj_scanpos = xsp;
1119: break;
1120: }
1121: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1122: return false;
1123: }
1124: return false;
1125: }
1126:
1127: final private boolean jj_3R_92() {
1128: if (jj_scan_token(STRING_LITERAL))
1129: return true;
1130: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1131: return false;
1132: return false;
1133: }
1134:
1135: final private boolean jj_3R_62() {
1136: if (jj_scan_token(EMPTY))
1137: return true;
1138: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1139: return false;
1140: return false;
1141: }
1142:
1143: final private boolean jj_3R_61() {
1144: if (jj_scan_token(MINUS))
1145: return true;
1146: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1147: return false;
1148: return false;
1149: }
1150:
1151: final private boolean jj_3R_69() {
1152: if (jj_scan_token(NOT1))
1153: return true;
1154: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1155: return false;
1156: return false;
1157: }
1158:
1159: final private boolean jj_3R_60() {
1160: Token xsp;
1161: xsp = jj_scanpos;
1162: if (jj_3R_69()) {
1163: jj_scanpos = xsp;
1164: if (jj_3R_70())
1165: return true;
1166: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1167: return false;
1168: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1169: return false;
1170: return false;
1171: }
1172:
1173: final private boolean jj_3R_55() {
1174: Token xsp;
1175: xsp = jj_scanpos;
1176: if (jj_3R_60()) {
1177: jj_scanpos = xsp;
1178: if (jj_3R_61()) {
1179: jj_scanpos = xsp;
1180: if (jj_3R_62())
1181: return true;
1182: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1183: return false;
1184: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1185: return false;
1186: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1187: return false;
1188: return false;
1189: }
1190:
1191: final private boolean jj_3R_96() {
1192: if (jj_scan_token(FALSE))
1193: return true;
1194: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1195: return false;
1196: return false;
1197: }
1198:
1199: final private boolean jj_3R_43() {
1200: Token xsp;
1201: while (true) {
1202: xsp = jj_scanpos;
1203: if (jj_3R_55()) {
1204: jj_scanpos = xsp;
1205: break;
1206: }
1207: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1208: return false;
1209: }
1210: if (jj_3R_56())
1211: return true;
1212: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1213: return false;
1214: return false;
1215: }
1216:
1217: final private boolean jj_3R_95() {
1218: if (jj_scan_token(TRUE))
1219: return true;
1220: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1221: return false;
1222: return false;
1223: }
1224:
1225: final private boolean jj_3R_89() {
1226: Token xsp;
1227: xsp = jj_scanpos;
1228: if (jj_3R_95()) {
1229: jj_scanpos = xsp;
1230: if (jj_3R_96())
1231: return true;
1232: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1233: return false;
1234: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1235: return false;
1236: return false;
1237: }
1238:
1239: final private boolean jj_3R_85() {
1240: if (jj_3R_93())
1241: return true;
1242: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1243: return false;
1244: return false;
1245: }
1246:
1247: final private boolean jj_3R_84() {
1248: if (jj_3R_92())
1249: return true;
1250: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1251: return false;
1252: return false;
1253: }
1254:
1255: final private boolean jj_3R_83() {
1256: if (jj_3R_91())
1257: return true;
1258: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1259: return false;
1260: return false;
1261: }
1262:
1263: final private boolean jj_3R_82() {
1264: if (jj_3R_90())
1265: return true;
1266: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1267: return false;
1268: return false;
1269: }
1270:
1271: final private boolean jj_3R_28() {
1272: if (jj_scan_token(AND2))
1273: return true;
1274: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1275: return false;
1276: return false;
1277: }
1278:
1279: final private boolean jj_3R_81() {
1280: if (jj_3R_89())
1281: return true;
1282: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1283: return false;
1284: return false;
1285: }
1286:
1287: final private boolean jj_3R_76() {
1288: Token xsp;
1289: xsp = jj_scanpos;
1290: if (jj_3R_81()) {
1291: jj_scanpos = xsp;
1292: if (jj_3R_82()) {
1293: jj_scanpos = xsp;
1294: if (jj_3R_83()) {
1295: jj_scanpos = xsp;
1296: if (jj_3R_84()) {
1297: jj_scanpos = xsp;
1298: if (jj_3R_85())
1299: return true;
1300: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1301: return false;
1302: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1303: return false;
1304: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1305: return false;
1306: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1307: return false;
1308: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1309: return false;
1310: return false;
1311: }
1312:
1313: final private boolean jj_3R_11() {
1314: if (jj_3R_14())
1315: return true;
1316: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1317: return false;
1318: if (jj_scan_token(COND))
1319: return true;
1320: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1321: return false;
1322: if (jj_3R_15())
1323: return true;
1324: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1325: return false;
1326: if (jj_scan_token(COLON))
1327: return true;
1328: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1329: return false;
1330: if (jj_3R_15())
1331: return true;
1332: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1333: return false;
1334: return false;
1335: }
1336:
1337: final private boolean jj_3R_27() {
1338: if (jj_scan_token(AND1))
1339: return true;
1340: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1341: return false;
1342: return false;
1343: }
1344:
1345: final private boolean jj_3R_22() {
1346: Token xsp;
1347: xsp = jj_scanpos;
1348: if (jj_3R_27()) {
1349: jj_scanpos = xsp;
1350: if (jj_3R_28())
1351: return true;
1352: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1353: return false;
1354: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1355: return false;
1356: if (jj_3R_21())
1357: return true;
1358: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1359: return false;
1360: return false;
1361: }
1362:
1363: final private boolean jj_3R_17() {
1364: if (jj_3R_21())
1365: return true;
1366: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1367: return false;
1368: Token xsp;
1369: while (true) {
1370: xsp = jj_scanpos;
1371: if (jj_3R_22()) {
1372: jj_scanpos = xsp;
1373: break;
1374: }
1375: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1376: return false;
1377: }
1378: return false;
1379: }
1380:
1381: final private boolean jj_3R_68() {
1382: if (jj_scan_token(MODULUS2))
1383: return true;
1384: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1385: return false;
1386: return false;
1387: }
1388:
1389: final private boolean jj_3R_88() {
1390: if (jj_scan_token(LBRACKET))
1391: return true;
1392: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1393: return false;
1394: if (jj_3R_15())
1395: return true;
1396: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1397: return false;
1398: if (jj_scan_token(RBRACKET))
1399: return true;
1400: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1401: return false;
1402: return false;
1403: }
1404:
1405: final private boolean jj_3R_66() {
1406: if (jj_scan_token(DIVIDE2))
1407: return true;
1408: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1409: return false;
1410: return false;
1411: }
1412:
1413: final private boolean jj_3R_67() {
1414: if (jj_scan_token(MODULUS1))
1415: return true;
1416: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1417: return false;
1418: return false;
1419: }
1420:
1421: final private boolean jj_3R_59() {
1422: Token xsp;
1423: xsp = jj_scanpos;
1424: if (jj_3R_67()) {
1425: jj_scanpos = xsp;
1426: if (jj_3R_68())
1427: return true;
1428: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1429: return false;
1430: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1431: return false;
1432: return false;
1433: }
1434:
1435: final private boolean jj_3R_65() {
1436: if (jj_scan_token(DIVIDE1))
1437: return true;
1438: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1439: return false;
1440: return false;
1441: }
1442:
1443: final private boolean jj_3R_87() {
1444: if (jj_scan_token(DOT))
1445: return true;
1446: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1447: return false;
1448: if (jj_3R_13())
1449: return true;
1450: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1451: return false;
1452: return false;
1453: }
1454:
1455: final private boolean jj_3R_58() {
1456: Token xsp;
1457: xsp = jj_scanpos;
1458: if (jj_3R_65()) {
1459: jj_scanpos = xsp;
1460: if (jj_3R_66())
1461: return true;
1462: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1463: return false;
1464: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1465: return false;
1466: return false;
1467: }
1468:
1469: final private boolean jj_3R_57() {
1470: if (jj_scan_token(MULTIPLY))
1471: return true;
1472: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1473: return false;
1474: return false;
1475: }
1476:
1477: final private boolean jj_3R_44() {
1478: Token xsp;
1479: xsp = jj_scanpos;
1480: if (jj_3R_57()) {
1481: jj_scanpos = xsp;
1482: if (jj_3R_58()) {
1483: jj_scanpos = xsp;
1484: if (jj_3R_59())
1485: return true;
1486: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1487: return false;
1488: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1489: return false;
1490: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1491: return false;
1492: if (jj_3R_43())
1493: return true;
1494: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1495: return false;
1496: return false;
1497: }
1498:
1499: final private boolean jj_3R_24() {
1500: if (jj_scan_token(OR2))
1501: return true;
1502: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1503: return false;
1504: return false;
1505: }
1506:
1507: final private boolean jj_3R_80() {
1508: if (jj_3R_88())
1509: return true;
1510: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1511: return false;
1512: return false;
1513: }
1514:
1515: final private boolean jj_3R_33() {
1516: if (jj_3R_43())
1517: return true;
1518: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1519: return false;
1520: Token xsp;
1521: while (true) {
1522: xsp = jj_scanpos;
1523: if (jj_3R_44()) {
1524: jj_scanpos = xsp;
1525: break;
1526: }
1527: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1528: return false;
1529: }
1530: return false;
1531: }
1532:
1533: final private boolean jj_3R_79() {
1534: if (jj_3R_87())
1535: return true;
1536: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1537: return false;
1538: return false;
1539: }
1540:
1541: final private boolean jj_3R_75() {
1542: Token xsp;
1543: xsp = jj_scanpos;
1544: if (jj_3R_79()) {
1545: jj_scanpos = xsp;
1546: if (jj_3R_80())
1547: return true;
1548: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1549: return false;
1550: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1551: return false;
1552: return false;
1553: }
1554:
1555: final private boolean jj_3R_23() {
1556: if (jj_scan_token(OR1))
1557: return true;
1558: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1559: return false;
1560: return false;
1561: }
1562:
1563: final private boolean jj_3R_18() {
1564: Token xsp;
1565: xsp = jj_scanpos;
1566: if (jj_3R_23()) {
1567: jj_scanpos = xsp;
1568: if (jj_3R_24())
1569: return true;
1570: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1571: return false;
1572: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1573: return false;
1574: if (jj_3R_17())
1575: return true;
1576: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1577: return false;
1578: return false;
1579: }
1580:
1581: final private boolean jj_3R_14() {
1582: if (jj_3R_17())
1583: return true;
1584: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1585: return false;
1586: Token xsp;
1587: while (true) {
1588: xsp = jj_scanpos;
1589: if (jj_3R_18()) {
1590: jj_scanpos = xsp;
1591: break;
1592: }
1593: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1594: return false;
1595: }
1596: return false;
1597: }
1598:
1599: final private boolean jj_3R_94() {
1600: if (jj_scan_token(COMMA))
1601: return true;
1602: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1603: return false;
1604: if (jj_3R_15())
1605: return true;
1606: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1607: return false;
1608: return false;
1609: }
1610:
1611: final private boolean jj_3_1() {
1612: if (jj_3R_11())
1613: return true;
1614: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1615: return false;
1616: return false;
1617: }
1618:
1619: final private boolean jj_3R_86() {
1620: if (jj_3R_15())
1621: return true;
1622: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1623: return false;
1624: Token xsp;
1625: while (true) {
1626: xsp = jj_scanpos;
1627: if (jj_3R_94()) {
1628: jj_scanpos = xsp;
1629: break;
1630: }
1631: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1632: return false;
1633: }
1634: return false;
1635: }
1636:
1637: final private boolean jj_3R_20() {
1638: if (jj_3R_14())
1639: return true;
1640: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1641: return false;
1642: return false;
1643: }
1644:
1645: final private boolean jj_3R_19() {
1646: if (jj_3R_11())
1647: return true;
1648: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1649: return false;
1650: return false;
1651: }
1652:
1653: final private boolean jj_3R_46() {
1654: if (jj_scan_token(MINUS))
1655: return true;
1656: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1657: return false;
1658: return false;
1659: }
1660:
1661: final private boolean jj_3R_15() {
1662: Token xsp;
1663: xsp = jj_scanpos;
1664: if (jj_3R_19()) {
1665: jj_scanpos = xsp;
1666: if (jj_3R_20())
1667: return true;
1668: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1669: return false;
1670: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1671: return false;
1672: return false;
1673: }
1674:
1675: final private boolean jj_3R_45() {
1676: if (jj_scan_token(PLUS))
1677: return true;
1678: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1679: return false;
1680: return false;
1681: }
1682:
1683: final private boolean jj_3R_34() {
1684: Token xsp;
1685: xsp = jj_scanpos;
1686: if (jj_3R_45()) {
1687: jj_scanpos = xsp;
1688: if (jj_3R_46())
1689: return true;
1690: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1691: return false;
1692: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1693: return false;
1694: if (jj_3R_33())
1695: return true;
1696: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1697: return false;
1698: return false;
1699: }
1700:
1701: final private boolean jj_3R_77() {
1702: if (jj_3R_12())
1703: return true;
1704: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1705: return false;
1706: if (jj_scan_token(LPAREN))
1707: return true;
1708: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1709: return false;
1710: Token xsp;
1711: xsp = jj_scanpos;
1712: if (jj_3R_86())
1713: jj_scanpos = xsp;
1714: else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1715: return false;
1716: if (jj_scan_token(RPAREN))
1717: return true;
1718: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1719: return false;
1720: return false;
1721: }
1722:
1723: final private boolean jj_3R_29() {
1724: if (jj_3R_33())
1725: return true;
1726: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1727: return false;
1728: Token xsp;
1729: while (true) {
1730: xsp = jj_scanpos;
1731: if (jj_3R_34()) {
1732: jj_scanpos = xsp;
1733: break;
1734: }
1735: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1736: return false;
1737: }
1738: return false;
1739: }
1740:
1741: final private boolean jj_3_2() {
1742: if (jj_3R_12())
1743: return true;
1744: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1745: return false;
1746: if (jj_scan_token(LPAREN))
1747: return true;
1748: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1749: return false;
1750: return false;
1751: }
1752:
1753: final private boolean jj_3R_78() {
1754: if (jj_scan_token(IDENTIFIER))
1755: return true;
1756: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1757: return false;
1758: return false;
1759: }
1760:
1761: final private boolean jj_3R_74() {
1762: if (jj_3R_78())
1763: return true;
1764: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1765: return false;
1766: return false;
1767: }
1768:
1769: final private boolean jj_3R_73() {
1770: if (jj_3R_77())
1771: return true;
1772: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1773: return false;
1774: return false;
1775: }
1776:
1777: final private boolean jj_3R_72() {
1778: if (jj_scan_token(LPAREN))
1779: return true;
1780: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1781: return false;
1782: if (jj_3R_15())
1783: return true;
1784: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1785: return false;
1786: if (jj_scan_token(RPAREN))
1787: return true;
1788: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1789: return false;
1790: return false;
1791: }
1792:
1793: final private boolean jj_3R_71() {
1794: if (jj_3R_76())
1795: return true;
1796: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1797: return false;
1798: return false;
1799: }
1800:
1801: final private boolean jj_3_3() {
1802: if (jj_3R_13())
1803: return true;
1804: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1805: return false;
1806: if (jj_scan_token(COLON))
1807: return true;
1808: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1809: return false;
1810: return false;
1811: }
1812:
1813: final private boolean jj_3R_63() {
1814: Token xsp;
1815: xsp = jj_scanpos;
1816: if (jj_3R_71()) {
1817: jj_scanpos = xsp;
1818: if (jj_3R_72()) {
1819: jj_scanpos = xsp;
1820: if (jj_3R_73()) {
1821: jj_scanpos = xsp;
1822: if (jj_3R_74())
1823: return true;
1824: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1825: return false;
1826: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1827: return false;
1828: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1829: return false;
1830: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1831: return false;
1832: return false;
1833: }
1834:
1835: final private boolean jj_3R_54() {
1836: if (jj_scan_token(LE2))
1837: return true;
1838: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1839: return false;
1840: return false;
1841: }
1842:
1843: final private boolean jj_3R_52() {
1844: if (jj_scan_token(GE2))
1845: return true;
1846: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1847: return false;
1848: return false;
1849: }
1850:
1851: final private boolean jj_3R_50() {
1852: if (jj_scan_token(GT2))
1853: return true;
1854: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1855: return false;
1856: return false;
1857: }
1858:
1859: final private boolean jj_3R_48() {
1860: if (jj_scan_token(LT2))
1861: return true;
1862: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1863: return false;
1864: return false;
1865: }
1866:
1867: final private boolean jj_3R_53() {
1868: if (jj_scan_token(LE1))
1869: return true;
1870: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1871: return false;
1872: return false;
1873: }
1874:
1875: final private boolean jj_3R_16() {
1876: if (jj_3R_13())
1877: return true;
1878: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1879: return false;
1880: if (jj_scan_token(COLON))
1881: return true;
1882: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1883: return false;
1884: return false;
1885: }
1886:
1887: final private boolean jj_3R_38() {
1888: Token xsp;
1889: xsp = jj_scanpos;
1890: if (jj_3R_53()) {
1891: jj_scanpos = xsp;
1892: if (jj_3R_54())
1893: return true;
1894: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1895: return false;
1896: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1897: return false;
1898: return false;
1899: }
1900:
1901: final private boolean jj_3R_51() {
1902: if (jj_scan_token(GE1))
1903: return true;
1904: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1905: return false;
1906: return false;
1907: }
1908:
1909: final private boolean jj_3R_37() {
1910: Token xsp;
1911: xsp = jj_scanpos;
1912: if (jj_3R_51()) {
1913: jj_scanpos = xsp;
1914: if (jj_3R_52())
1915: return true;
1916: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1917: return false;
1918: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1919: return false;
1920: return false;
1921: }
1922:
1923: final private boolean jj_3R_49() {
1924: if (jj_scan_token(GT1))
1925: return true;
1926: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1927: return false;
1928: return false;
1929: }
1930:
1931: final private boolean jj_3R_36() {
1932: Token xsp;
1933: xsp = jj_scanpos;
1934: if (jj_3R_49()) {
1935: jj_scanpos = xsp;
1936: if (jj_3R_50())
1937: return true;
1938: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1939: return false;
1940: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1941: return false;
1942: return false;
1943: }
1944:
1945: final private boolean jj_3R_47() {
1946: if (jj_scan_token(LT1))
1947: return true;
1948: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1949: return false;
1950: return false;
1951: }
1952:
1953: final private boolean jj_3R_35() {
1954: Token xsp;
1955: xsp = jj_scanpos;
1956: if (jj_3R_47()) {
1957: jj_scanpos = xsp;
1958: if (jj_3R_48())
1959: return true;
1960: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1961: return false;
1962: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1963: return false;
1964: return false;
1965: }
1966:
1967: final private boolean jj_3R_12() {
1968: Token xsp;
1969: xsp = jj_scanpos;
1970: if (jj_3R_16())
1971: jj_scanpos = xsp;
1972: else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1973: return false;
1974: if (jj_3R_13())
1975: return true;
1976: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1977: return false;
1978: return false;
1979: }
1980:
1981: final private boolean jj_3R_30() {
1982: Token xsp;
1983: xsp = jj_scanpos;
1984: if (jj_3R_35()) {
1985: jj_scanpos = xsp;
1986: if (jj_3R_36()) {
1987: jj_scanpos = xsp;
1988: if (jj_3R_37()) {
1989: jj_scanpos = xsp;
1990: if (jj_3R_38())
1991: return true;
1992: if (jj_la == 0 && jj_scanpos == jj_lastpos)
1993: return false;
1994: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1995: return false;
1996: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1997: return false;
1998: } else if (jj_la == 0 && jj_scanpos == jj_lastpos)
1999: return false;
2000: if (jj_3R_29())
2001: return true;
2002: if (jj_la == 0 && jj_scanpos == jj_lastpos)
2003: return false;
2004: return false;
2005: }
2006:
2007: final private boolean jj_3R_25() {
2008: if (jj_3R_29())
2009: return true;
2010: if (jj_la == 0 && jj_scanpos == jj_lastpos)
2011: return false;
2012: Token xsp;
2013: while (true) {
2014: xsp = jj_scanpos;
2015: if (jj_3R_30()) {
2016: jj_scanpos = xsp;
2017: break;
2018: }
2019: if (jj_la == 0 && jj_scanpos == jj_lastpos)
2020: return false;
2021: }
2022: return false;
2023: }
2024:
2025: final private boolean jj_3R_64() {
2026: if (jj_3R_75())
2027: return true;
2028: if (jj_la == 0 && jj_scanpos == jj_lastpos)
2029: return false;
2030: return false;
2031: }
2032:
2033: final private boolean jj_3R_13() {
2034: if (jj_scan_token(IDENTIFIER))
2035: return true;
2036: if (jj_la == 0 && jj_scanpos == jj_lastpos)
2037: return false;
2038: return false;
2039: }
2040:
2041: final private boolean jj_3R_56() {
2042: if (jj_3R_63())
2043: return true;
2044: if (jj_la == 0 && jj_scanpos == jj_lastpos)
2045: return false;
2046: Token xsp;
2047: while (true) {
2048: xsp = jj_scanpos;
2049: if (jj_3R_64()) {
2050: jj_scanpos = xsp;
2051: break;
2052: }
2053: if (jj_la == 0 && jj_scanpos == jj_lastpos)
2054: return false;
2055: }
2056: return false;
2057: }
2058:
2059: final private boolean jj_3R_93() {
2060: if (jj_scan_token(NULL))
2061: return true;
2062: if (jj_la == 0 && jj_scanpos == jj_lastpos)
2063: return false;
2064: return false;
2065: }
2066:
2067: public ELParserTokenManager token_source;
2068: SimpleCharStream jj_input_stream;
2069: public Token token, jj_nt;
2070: private int jj_ntk;
2071: private Token jj_scanpos, jj_lastpos;
2072: private int jj_la;
2073: public boolean lookingAhead = false;
2074: private boolean jj_semLA;
2075: private int jj_gen;
2076: final private int[] jj_la1 = new int[35];
2077: final private int[] jj_la1_0 = { 0x6, 0x6, 0x6, 0x20007580, 0x0,
2078: 0x0, 0x0, 0x0, 0x18600000, 0x600000, 0x18000000,
2079: 0x18600000, 0x79e0000, 0x180000, 0x60000, 0x6000000,
2080: 0x1800000, 0x79e0000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
2081: 0x0, 0x0, 0x10000, 0x20007580, 0x0, 0x80000000, 0x20007580,
2082: 0x10000, 0x7580, 0x3000, };
2083: final private int[] jj_la1_1 = { 0x0, 0x0, 0x0, 0x50c10, 0xc000,
2084: 0xc000, 0x3000, 0x3000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
2085: 0x0, 0x0, 0x0, 0x18, 0x18, 0x3e0, 0xc0, 0x300, 0x3e0,
2086: 0x10c10, 0xc00, 0x10c10, 0x2, 0x0, 0x40000, 0x0, 0x50c10,
2087: 0x2, 0x0, 0x0, };
2088: final private JJCalls[] jj_2_rtns = new JJCalls[3];
2089: private boolean jj_rescan = false;
2090: private int jj_gc = 0;
2091:
2092: public ELParser(java.io.InputStream stream) {
2093: jj_input_stream = new SimpleCharStream(stream, 1, 1);
2094: token_source = new ELParserTokenManager(jj_input_stream);
2095: token = new Token();
2096: jj_ntk = -1;
2097: jj_gen = 0;
2098: for (int i = 0; i < 35; i++)
2099: jj_la1[i] = -1;
2100: for (int i = 0; i < jj_2_rtns.length; i++)
2101: jj_2_rtns[i] = new JJCalls();
2102: }
2103:
2104: public void ReInit(java.io.InputStream stream) {
2105: jj_input_stream.ReInit(stream, 1, 1);
2106: token_source.ReInit(jj_input_stream);
2107: token = new Token();
2108: jj_ntk = -1;
2109: jj_gen = 0;
2110: for (int i = 0; i < 35; i++)
2111: jj_la1[i] = -1;
2112: for (int i = 0; i < jj_2_rtns.length; i++)
2113: jj_2_rtns[i] = new JJCalls();
2114: }
2115:
2116: public ELParser(java.io.Reader stream) {
2117: jj_input_stream = new SimpleCharStream(stream, 1, 1);
2118: token_source = new ELParserTokenManager(jj_input_stream);
2119: token = new Token();
2120: jj_ntk = -1;
2121: jj_gen = 0;
2122: for (int i = 0; i < 35; i++)
2123: jj_la1[i] = -1;
2124: for (int i = 0; i < jj_2_rtns.length; i++)
2125: jj_2_rtns[i] = new JJCalls();
2126: }
2127:
2128: public void ReInit(java.io.Reader stream) {
2129: jj_input_stream.ReInit(stream, 1, 1);
2130: token_source.ReInit(jj_input_stream);
2131: token = new Token();
2132: jj_ntk = -1;
2133: jj_gen = 0;
2134: for (int i = 0; i < 35; i++)
2135: jj_la1[i] = -1;
2136: for (int i = 0; i < jj_2_rtns.length; i++)
2137: jj_2_rtns[i] = new JJCalls();
2138: }
2139:
2140: public ELParser(ELParserTokenManager tm) {
2141: token_source = tm;
2142: token = new Token();
2143: jj_ntk = -1;
2144: jj_gen = 0;
2145: for (int i = 0; i < 35; i++)
2146: jj_la1[i] = -1;
2147: for (int i = 0; i < jj_2_rtns.length; i++)
2148: jj_2_rtns[i] = new JJCalls();
2149: }
2150:
2151: public void ReInit(ELParserTokenManager tm) {
2152: token_source = tm;
2153: token = new Token();
2154: jj_ntk = -1;
2155: jj_gen = 0;
2156: for (int i = 0; i < 35; i++)
2157: jj_la1[i] = -1;
2158: for (int i = 0; i < jj_2_rtns.length; i++)
2159: jj_2_rtns[i] = new JJCalls();
2160: }
2161:
2162: final private Token jj_consume_token(int kind)
2163: throws ParseException {
2164: Token oldToken;
2165: if ((oldToken = token).next != null)
2166: token = token.next;
2167: else
2168: token = token.next = token_source.getNextToken();
2169: jj_ntk = -1;
2170: if (token.kind == kind) {
2171: jj_gen++;
2172: if (++jj_gc > 100) {
2173: jj_gc = 0;
2174: for (int i = 0; i < jj_2_rtns.length; i++) {
2175: JJCalls c = jj_2_rtns[i];
2176: while (c != null) {
2177: if (c.gen < jj_gen)
2178: c.first = null;
2179: c = c.next;
2180: }
2181: }
2182: }
2183: return token;
2184: }
2185: token = oldToken;
2186: jj_kind = kind;
2187: throw generateParseException();
2188: }
2189:
2190: final private boolean jj_scan_token(int kind) {
2191: if (jj_scanpos == jj_lastpos) {
2192: jj_la--;
2193: if (jj_scanpos.next == null) {
2194: jj_lastpos = jj_scanpos = jj_scanpos.next = token_source
2195: .getNextToken();
2196: } else {
2197: jj_lastpos = jj_scanpos = jj_scanpos.next;
2198: }
2199: } else {
2200: jj_scanpos = jj_scanpos.next;
2201: }
2202: if (jj_rescan) {
2203: int i = 0;
2204: Token tok = token;
2205: while (tok != null && tok != jj_scanpos) {
2206: i++;
2207: tok = tok.next;
2208: }
2209: if (tok != null)
2210: jj_add_error_token(kind, i);
2211: }
2212: return (jj_scanpos.kind != kind);
2213: }
2214:
2215: final public Token getNextToken() {
2216: if (token.next != null)
2217: token = token.next;
2218: else
2219: token = token.next = token_source.getNextToken();
2220: jj_ntk = -1;
2221: jj_gen++;
2222: return token;
2223: }
2224:
2225: final public Token getToken(int index) {
2226: Token t = lookingAhead ? jj_scanpos : token;
2227: for (int i = 0; i < index; i++) {
2228: if (t.next != null)
2229: t = t.next;
2230: else
2231: t = t.next = token_source.getNextToken();
2232: }
2233: return t;
2234: }
2235:
2236: final private int jj_ntk() {
2237: if ((jj_nt = token.next) == null)
2238: return (jj_ntk = (token.next = token_source.getNextToken()).kind);
2239: else
2240: return (jj_ntk = jj_nt.kind);
2241: }
2242:
2243: private java.util.Vector jj_expentries = new java.util.Vector();
2244: private int[] jj_expentry;
2245: private int jj_kind = -1;
2246: private int[] jj_lasttokens = new int[100];
2247: private int jj_endpos;
2248:
2249: private void jj_add_error_token(int kind, int pos) {
2250: if (pos >= 100) return;
2251: if (pos == jj_endpos + 1) {
2252: jj_lasttokens[jj_endpos++] = kind;
2253: } else if (jj_endpos != 0) {
2254: jj_expentry = new int[jj_endpos];
2255: for (int i = 0; i < jj_endpos; i++) {
2256: jj_expentry[i] = jj_lasttokens[i];
2257: }
2258: boolean exists = false;
2259: for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
2260: int[] oldentry = (int[])(enum.nextElement());
2261: if (oldentry.length == jj_expentry.length) {
2262: exists = true;
2263: for (int i = 0; i < jj_expentry.length; i++) {
2264: if (oldentry[i] != jj_expentry[i]) {
2265: exists = false;
2266: break;
2267: }
2268: }
2269: if (exists) break;
2270: }
2271: }
2272: if (!exists) jj_expentries.addElement(jj_expentry);
2273: if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
2274: }
2275: }
2276:
2277: final public ParseException generateParseException() {
2278: jj_expentries.removeAllElements();
2279: boolean[] la1tokens = new boolean[55];
2280: for (int i = 0; i < 55; i++) {
2281: la1tokens[i] = false;
2282: }
2283: if (jj_kind >= 0) {
2284: la1tokens[jj_kind] = true;
2285: jj_kind = -1;
2286: }
2287: for (int i = 0; i < 35; i++) {
2288: if (jj_la1[i] == jj_gen) {
2289: for (int j = 0; j < 32; j++) {
2290: if ((jj_la1_0[i] & (1 << j)) != 0) {
2291: la1tokens[j] = true;
2292: }
2293: if ((jj_la1_1[i] & (1 << j)) != 0) {
2294: la1tokens[32 + j] = true;
2295: }
2296: }
2297: }
2298: }
2299: for (int i = 0; i < 55; i++) {
2300: if (la1tokens[i]) {
2301: jj_expentry = new int[1];
2302: jj_expentry[0] = i;
2303: jj_expentries.addElement(jj_expentry);
2304: }
2305: }
2306: jj_endpos = 0;
2307: jj_rescan_token();
2308: jj_add_error_token(0, 0);
2309: int[][] exptokseq = new int[jj_expentries.size()][];
2310: for (int i = 0; i < jj_expentries.size(); i++) {
2311: exptokseq[i] = (int[]) jj_expentries.elementAt(i);
2312: }
2313: return new ParseException(token, exptokseq, tokenImage);
2314: }
2315:
2316: final public void enable_tracing() {
2317: }
2318:
2319: final public void disable_tracing() {
2320: }
2321:
2322: final private void jj_rescan_token() {
2323: jj_rescan = true;
2324: for (int i = 0; i < 3; i++) {
2325: JJCalls p = jj_2_rtns[i];
2326: do {
2327: if (p.gen > jj_gen) {
2328: jj_la = p.arg;
2329: jj_lastpos = jj_scanpos = p.first;
2330: switch (i) {
2331: case 0:
2332: jj_3_1();
2333: break;
2334: case 1:
2335: jj_3_2();
2336: break;
2337: case 2:
2338: jj_3_3();
2339: break;
2340: }
2341: }
2342: p = p.next;
2343: } while (p != null);
2344: }
2345: jj_rescan = false;
2346: }
2347:
2348: final private void jj_save(int index, int xla) {
2349: JJCalls p = jj_2_rtns[index];
2350: while (p.gen > jj_gen) {
2351: if (p.next == null) {
2352: p = p.next = new JJCalls();
2353: break;
2354: }
2355: p = p.next;
2356: }
2357: p.gen = jj_gen + xla - jj_la;
2358: p.first = token;
2359: p.arg = xla;
2360: }
2361:
2362: static final class JJCalls {
2363: int gen;
2364: Token first;
2365: int arg;
2366: JJCalls next;
2367: }
2368:
2369: }
|