1. /* Generated By:JavaCC: Do not edit this line. ELParser.java */
  2. package org.apache.commons.el.parser;
  3. import org.apache.commons.el.*;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. /**
  7. * Generated EL parser.
  8. *
  9. * @author Nathan Abramson
  10. * @author Shawn Bayern
  11. */
  12. public class ELParser implements ELParserConstants {
  13. public static void main(String args[])
  14. throws ParseException
  15. {
  16. ELParser parser = new ELParser (System.in);
  17. parser.ExpressionString ();
  18. }
  19. /*****************************************
  20. * GRAMMAR PRODUCTIONS *
  21. *****************************************/
  22. /**
  23. *
  24. * Returns a String if the expression string is a single String, an
  25. * Expression if the expression string is a single Expression, an
  26. * ExpressionString if it's a mixture of both.
  27. **/
  28. final public Object ExpressionString() throws ParseException {
  29. Object ret = "";
  30. List elems = null;
  31. Object elem;
  32. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  33. case NON_EXPRESSION_TEXT:
  34. ret = AttrValueString();
  35. break;
  36. case START_EXPRESSION:
  37. ret = AttrValueExpression();
  38. break;
  39. default:
  40. jj_la1[0] = jj_gen;
  41. jj_consume_token(-1);
  42. throw new ParseException();
  43. }
  44. label_1:
  45. while (true) {
  46. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  47. case NON_EXPRESSION_TEXT:
  48. case START_EXPRESSION:
  49. ;
  50. break;
  51. default:
  52. jj_la1[1] = jj_gen;
  53. break label_1;
  54. }
  55. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  56. case NON_EXPRESSION_TEXT:
  57. elem = AttrValueString();
  58. break;
  59. case START_EXPRESSION:
  60. elem = AttrValueExpression();
  61. break;
  62. default:
  63. jj_la1[2] = jj_gen;
  64. jj_consume_token(-1);
  65. throw new ParseException();
  66. }
  67. if (elems == null) {
  68. elems = new ArrayList ();
  69. elems.add (ret);
  70. }
  71. elems.add (elem);
  72. }
  73. if (elems != null) {
  74. ret = new ExpressionString (elems.toArray ());
  75. }
  76. {if (true) return ret;}
  77. throw new Error("Missing return statement in function");
  78. }
  79. final public String AttrValueString() throws ParseException {
  80. Token t;
  81. t = jj_consume_token(NON_EXPRESSION_TEXT);
  82. {if (true) return t.image;}
  83. throw new Error("Missing return statement in function");
  84. }
  85. final public Expression AttrValueExpression() throws ParseException {
  86. Expression exp;
  87. jj_consume_token(START_EXPRESSION);
  88. exp = Expression();
  89. jj_consume_token(END_EXPRESSION);
  90. {if (true) return exp;}
  91. throw new Error("Missing return statement in function");
  92. }
  93. final public Expression Expression() throws ParseException {
  94. Expression ret;
  95. if (jj_2_1(2147483647)) {
  96. ret = ConditionalExpression();
  97. } else {
  98. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  99. case INTEGER_LITERAL:
  100. case FLOATING_POINT_LITERAL:
  101. case STRING_LITERAL:
  102. case TRUE:
  103. case FALSE:
  104. case NULL:
  105. case LPAREN:
  106. case MINUS:
  107. case NOT1:
  108. case NOT2:
  109. case EMPTY:
  110. case IDENTIFIER:
  111. ret = OrExpression();
  112. break;
  113. default:
  114. jj_la1[3] = jj_gen;
  115. jj_consume_token(-1);
  116. throw new ParseException();
  117. }
  118. }
  119. {if (true) return ret;}
  120. throw new Error("Missing return statement in function");
  121. }
  122. final public Expression OrExpression() throws ParseException {
  123. Expression startExpression;
  124. BinaryOperator operator;
  125. Expression expression;
  126. List operators = null;
  127. List expressions = null;
  128. startExpression = AndExpression();
  129. label_2:
  130. while (true) {
  131. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  132. case OR1:
  133. case OR2:
  134. ;
  135. break;
  136. default:
  137. jj_la1[4] = jj_gen;
  138. break label_2;
  139. }
  140. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  141. case OR1:
  142. jj_consume_token(OR1);
  143. break;
  144. case OR2:
  145. jj_consume_token(OR2);
  146. break;
  147. default:
  148. jj_la1[5] = jj_gen;
  149. jj_consume_token(-1);
  150. throw new ParseException();
  151. }
  152. operator = OrOperator.SINGLETON;
  153. expression = AndExpression();
  154. if (operators == null) {
  155. operators = new ArrayList ();
  156. expressions = new ArrayList ();
  157. }
  158. operators.add (operator);
  159. expressions.add (expression);
  160. }
  161. if (operators != null) {
  162. {if (true) return new BinaryOperatorExpression (startExpression,
  163. operators,
  164. expressions);}
  165. }
  166. else {
  167. {if (true) return startExpression;}
  168. }
  169. throw new Error("Missing return statement in function");
  170. }
  171. final public Expression AndExpression() throws ParseException {
  172. Expression startExpression;
  173. BinaryOperator operator;
  174. Expression expression;
  175. List operators = null;
  176. List expressions = null;
  177. startExpression = EqualityExpression();
  178. label_3:
  179. while (true) {
  180. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  181. case AND1:
  182. case AND2:
  183. ;
  184. break;
  185. default:
  186. jj_la1[6] = jj_gen;
  187. break label_3;
  188. }
  189. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  190. case AND1:
  191. jj_consume_token(AND1);
  192. break;
  193. case AND2:
  194. jj_consume_token(AND2);
  195. break;
  196. default:
  197. jj_la1[7] = jj_gen;
  198. jj_consume_token(-1);
  199. throw new ParseException();
  200. }
  201. operator = AndOperator.SINGLETON;
  202. expression = EqualityExpression();
  203. if (operators == null) {
  204. operators = new ArrayList ();
  205. expressions = new ArrayList ();
  206. }
  207. operators.add (operator);
  208. expressions.add (expression);
  209. }
  210. if (operators != null) {
  211. {if (true) return new BinaryOperatorExpression (startExpression,
  212. operators,
  213. expressions);}
  214. }
  215. else {
  216. {if (true) return startExpression;}
  217. }
  218. throw new Error("Missing return statement in function");
  219. }
  220. final public Expression EqualityExpression() throws ParseException {
  221. Expression startExpression;
  222. BinaryOperator operator;
  223. Expression expression;
  224. List operators = null;
  225. List expressions = null;
  226. startExpression = RelationalExpression();
  227. label_4:
  228. while (true) {
  229. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  230. case EQ1:
  231. case EQ2:
  232. case NE1:
  233. case NE2:
  234. ;
  235. break;
  236. default:
  237. jj_la1[8] = jj_gen;
  238. break label_4;
  239. }
  240. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  241. case EQ1:
  242. case EQ2:
  243. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  244. case EQ1:
  245. jj_consume_token(EQ1);
  246. break;
  247. case EQ2:
  248. jj_consume_token(EQ2);
  249. break;
  250. default:
  251. jj_la1[9] = jj_gen;
  252. jj_consume_token(-1);
  253. throw new ParseException();
  254. }
  255. operator = EqualsOperator.SINGLETON;
  256. break;
  257. case NE1:
  258. case NE2:
  259. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  260. case NE1:
  261. jj_consume_token(NE1);
  262. break;
  263. case NE2:
  264. jj_consume_token(NE2);
  265. break;
  266. default:
  267. jj_la1[10] = jj_gen;
  268. jj_consume_token(-1);
  269. throw new ParseException();
  270. }
  271. operator = NotEqualsOperator.SINGLETON;
  272. break;
  273. default:
  274. jj_la1[11] = jj_gen;
  275. jj_consume_token(-1);
  276. throw new ParseException();
  277. }
  278. expression = RelationalExpression();
  279. if (operators == null) {
  280. operators = new ArrayList ();
  281. expressions = new ArrayList ();
  282. }
  283. operators.add (operator);
  284. expressions.add (expression);
  285. }
  286. if (operators != null) {
  287. {if (true) return new BinaryOperatorExpression (startExpression,
  288. operators,
  289. expressions);}
  290. }
  291. else {
  292. {if (true) return startExpression;}
  293. }
  294. throw new Error("Missing return statement in function");
  295. }
  296. final public Expression RelationalExpression() throws ParseException {
  297. Expression startExpression;
  298. BinaryOperator operator;
  299. Expression expression;
  300. List operators = null;
  301. List expressions = null;
  302. startExpression = AddExpression();
  303. label_5:
  304. while (true) {
  305. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  306. case GT1:
  307. case GT2:
  308. case LT1:
  309. case LT2:
  310. case LE1:
  311. case LE2:
  312. case GE1:
  313. case GE2:
  314. ;
  315. break;
  316. default:
  317. jj_la1[12] = jj_gen;
  318. break label_5;
  319. }
  320. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  321. case LT1:
  322. case LT2:
  323. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  324. case LT1:
  325. jj_consume_token(LT1);
  326. break;
  327. case LT2:
  328. jj_consume_token(LT2);
  329. break;
  330. default:
  331. jj_la1[13] = jj_gen;
  332. jj_consume_token(-1);
  333. throw new ParseException();
  334. }
  335. operator = LessThanOperator.SINGLETON;
  336. break;
  337. case GT1:
  338. case GT2:
  339. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  340. case GT1:
  341. jj_consume_token(GT1);
  342. break;
  343. case GT2:
  344. jj_consume_token(GT2);
  345. break;
  346. default:
  347. jj_la1[14] = jj_gen;
  348. jj_consume_token(-1);
  349. throw new ParseException();
  350. }
  351. operator = GreaterThanOperator.SINGLETON;
  352. break;
  353. case GE1:
  354. case GE2:
  355. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  356. case GE1:
  357. jj_consume_token(GE1);
  358. break;
  359. case GE2:
  360. jj_consume_token(GE2);
  361. break;
  362. default:
  363. jj_la1[15] = jj_gen;
  364. jj_consume_token(-1);
  365. throw new ParseException();
  366. }
  367. operator = GreaterThanOrEqualsOperator.SINGLETON;
  368. break;
  369. case LE1:
  370. case LE2:
  371. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  372. case LE1:
  373. jj_consume_token(LE1);
  374. break;
  375. case LE2:
  376. jj_consume_token(LE2);
  377. break;
  378. default:
  379. jj_la1[16] = jj_gen;
  380. jj_consume_token(-1);
  381. throw new ParseException();
  382. }
  383. operator = LessThanOrEqualsOperator.SINGLETON;
  384. break;
  385. default:
  386. jj_la1[17] = jj_gen;
  387. jj_consume_token(-1);
  388. throw new ParseException();
  389. }
  390. expression = AddExpression();
  391. if (operators == null) {
  392. operators = new ArrayList ();
  393. expressions = new ArrayList ();
  394. }
  395. operators.add (operator);
  396. expressions.add (expression);
  397. }
  398. if (operators != null) {
  399. {if (true) return new BinaryOperatorExpression (startExpression,
  400. operators,
  401. expressions);}
  402. }
  403. else {
  404. {if (true) return startExpression;}
  405. }
  406. throw new Error("Missing return statement in function");
  407. }
  408. final public Expression AddExpression() throws ParseException {
  409. Expression startExpression;
  410. BinaryOperator operator;
  411. Expression expression;
  412. List operators = null;
  413. List expressions = null;
  414. startExpression = MultiplyExpression();
  415. label_6:
  416. while (true) {
  417. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  418. case PLUS:
  419. case MINUS:
  420. ;
  421. break;
  422. default:
  423. jj_la1[18] = jj_gen;
  424. break label_6;
  425. }
  426. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  427. case PLUS:
  428. jj_consume_token(PLUS);
  429. operator = PlusOperator.SINGLETON;
  430. break;
  431. case MINUS:
  432. jj_consume_token(MINUS);
  433. operator = MinusOperator.SINGLETON;
  434. break;
  435. default:
  436. jj_la1[19] = jj_gen;
  437. jj_consume_token(-1);
  438. throw new ParseException();
  439. }
  440. expression = MultiplyExpression();
  441. if (operators == null) {
  442. operators = new ArrayList ();
  443. expressions = new ArrayList ();
  444. }
  445. operators.add (operator);
  446. expressions.add (expression);
  447. }
  448. if (operators != null) {
  449. {if (true) return new BinaryOperatorExpression (startExpression,
  450. operators,
  451. expressions);}
  452. }
  453. else {
  454. {if (true) return startExpression;}
  455. }
  456. throw new Error("Missing return statement in function");
  457. }
  458. final public Expression MultiplyExpression() throws ParseException {
  459. Expression startExpression;
  460. BinaryOperator operator;
  461. Expression expression;
  462. List operators = null;
  463. List expressions = null;
  464. startExpression = UnaryExpression();
  465. label_7:
  466. while (true) {
  467. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  468. case MULTIPLY:
  469. case DIVIDE1:
  470. case DIVIDE2:
  471. case MODULUS1:
  472. case MODULUS2:
  473. ;
  474. break;
  475. default:
  476. jj_la1[20] = jj_gen;
  477. break label_7;
  478. }
  479. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  480. case MULTIPLY:
  481. jj_consume_token(MULTIPLY);
  482. operator = MultiplyOperator.SINGLETON;
  483. break;
  484. case DIVIDE1:
  485. case DIVIDE2:
  486. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  487. case DIVIDE1:
  488. jj_consume_token(DIVIDE1);
  489. break;
  490. case DIVIDE2:
  491. jj_consume_token(DIVIDE2);
  492. break;
  493. default:
  494. jj_la1[21] = jj_gen;
  495. jj_consume_token(-1);
  496. throw new ParseException();
  497. }
  498. operator = DivideOperator.SINGLETON;
  499. break;
  500. case MODULUS1:
  501. case MODULUS2:
  502. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  503. case MODULUS1:
  504. jj_consume_token(MODULUS1);
  505. break;
  506. case MODULUS2:
  507. jj_consume_token(MODULUS2);
  508. break;
  509. default:
  510. jj_la1[22] = jj_gen;
  511. jj_consume_token(-1);
  512. throw new ParseException();
  513. }
  514. operator = ModulusOperator.SINGLETON;
  515. break;
  516. default:
  517. jj_la1[23] = jj_gen;
  518. jj_consume_token(-1);
  519. throw new ParseException();
  520. }
  521. expression = UnaryExpression();
  522. if (operators == null) {
  523. operators = new ArrayList ();
  524. expressions = new ArrayList ();
  525. }
  526. operators.add (operator);
  527. expressions.add (expression);
  528. }
  529. if (operators != null) {
  530. {if (true) return new BinaryOperatorExpression (startExpression,
  531. operators,
  532. expressions);}
  533. }
  534. else {
  535. {if (true) return startExpression;}
  536. }
  537. throw new Error("Missing return statement in function");
  538. }
  539. final public Expression ConditionalExpression() throws ParseException {
  540. Expression condition, trueBranch, falseBranch;
  541. condition = OrExpression();
  542. jj_consume_token(COND);
  543. trueBranch = Expression();
  544. jj_consume_token(COLON);
  545. falseBranch = Expression();
  546. {if (true) return new ConditionalExpression(condition, trueBranch, falseBranch);}
  547. throw new Error("Missing return statement in function");
  548. }
  549. final public Expression UnaryExpression() throws ParseException {
  550. Expression expression;
  551. UnaryOperator singleOperator = null;
  552. UnaryOperator operator;
  553. List operators = null;
  554. label_8:
  555. while (true) {
  556. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  557. case MINUS:
  558. case NOT1:
  559. case NOT2:
  560. case EMPTY:
  561. ;
  562. break;
  563. default:
  564. jj_la1[24] = jj_gen;
  565. break label_8;
  566. }
  567. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  568. case NOT1:
  569. case NOT2:
  570. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  571. case NOT1:
  572. jj_consume_token(NOT1);
  573. break;
  574. case NOT2:
  575. jj_consume_token(NOT2);
  576. break;
  577. default:
  578. jj_la1[25] = jj_gen;
  579. jj_consume_token(-1);
  580. throw new ParseException();
  581. }
  582. operator = NotOperator.SINGLETON;
  583. break;
  584. case MINUS:
  585. jj_consume_token(MINUS);
  586. operator = UnaryMinusOperator.SINGLETON;
  587. break;
  588. case EMPTY:
  589. jj_consume_token(EMPTY);
  590. operator = EmptyOperator.SINGLETON;
  591. break;
  592. default:
  593. jj_la1[26] = jj_gen;
  594. jj_consume_token(-1);
  595. throw new ParseException();
  596. }
  597. if (singleOperator == null) {
  598. singleOperator = operator;
  599. }
  600. else if (operators == null) {
  601. operators = new ArrayList ();
  602. operators.add (singleOperator);
  603. operators.add (operator);
  604. }
  605. else {
  606. operators.add (operator);
  607. }
  608. }
  609. expression = Value();
  610. if (operators != null) {
  611. {if (true) return new UnaryOperatorExpression (null, operators, expression);}
  612. }
  613. else if (singleOperator != null) {
  614. {if (true) return new UnaryOperatorExpression (singleOperator, null, expression);}
  615. }
  616. else {
  617. {if (true) return expression;}
  618. }
  619. throw new Error("Missing return statement in function");
  620. }
  621. final public Expression Value() throws ParseException {
  622. Expression prefix;
  623. ValueSuffix suffix;
  624. List suffixes = null;
  625. prefix = ValuePrefix();
  626. label_9:
  627. while (true) {
  628. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  629. case DOT:
  630. case LBRACKET:
  631. ;
  632. break;
  633. default:
  634. jj_la1[27] = jj_gen;
  635. break label_9;
  636. }
  637. suffix = ValueSuffix();
  638. if (suffixes == null) {
  639. suffixes = new ArrayList ();
  640. }
  641. suffixes.add (suffix);
  642. }
  643. if (suffixes == null) {
  644. {if (true) return prefix;}
  645. }
  646. else {
  647. {if (true) return new ComplexValue (prefix, suffixes);}
  648. }
  649. throw new Error("Missing return statement in function");
  650. }
  651. /**
  652. * This is an element that can start a value
  653. **/
  654. final public Expression ValuePrefix() throws ParseException {
  655. Expression ret;
  656. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  657. case INTEGER_LITERAL:
  658. case FLOATING_POINT_LITERAL:
  659. case STRING_LITERAL:
  660. case TRUE:
  661. case FALSE:
  662. case NULL:
  663. ret = Literal();
  664. break;
  665. case LPAREN:
  666. jj_consume_token(LPAREN);
  667. ret = Expression();
  668. jj_consume_token(RPAREN);
  669. break;
  670. default:
  671. jj_la1[28] = jj_gen;
  672. if (jj_2_2(2147483647)) {
  673. ret = FunctionInvocation();
  674. } else {
  675. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  676. case IDENTIFIER:
  677. ret = NamedValue();
  678. break;
  679. default:
  680. jj_la1[29] = jj_gen;
  681. jj_consume_token(-1);
  682. throw new ParseException();
  683. }
  684. }
  685. }
  686. {if (true) return ret;}
  687. throw new Error("Missing return statement in function");
  688. }
  689. final public NamedValue NamedValue() throws ParseException {
  690. Token t;
  691. t = jj_consume_token(IDENTIFIER);
  692. {if (true) return new NamedValue (t.image);}
  693. throw new Error("Missing return statement in function");
  694. }
  695. final public FunctionInvocation FunctionInvocation() throws ParseException {
  696. String qualifiedName;
  697. List argumentList = new ArrayList();
  698. Expression exp;
  699. qualifiedName = QualifiedName();
  700. jj_consume_token(LPAREN);
  701. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  702. case INTEGER_LITERAL:
  703. case FLOATING_POINT_LITERAL:
  704. case STRING_LITERAL:
  705. case TRUE:
  706. case FALSE:
  707. case NULL:
  708. case LPAREN:
  709. case MINUS:
  710. case NOT1:
  711. case NOT2:
  712. case EMPTY:
  713. case IDENTIFIER:
  714. exp = Expression();
  715. argumentList.add(exp);
  716. label_10:
  717. while (true) {
  718. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  719. case COMMA:
  720. ;
  721. break;
  722. default:
  723. jj_la1[30] = jj_gen;
  724. break label_10;
  725. }
  726. jj_consume_token(COMMA);
  727. exp = Expression();
  728. argumentList.add(exp);
  729. }
  730. break;
  731. default:
  732. jj_la1[31] = jj_gen;
  733. ;
  734. }
  735. jj_consume_token(RPAREN);
  736. {if (true) return new FunctionInvocation(qualifiedName, argumentList);}
  737. throw new Error("Missing return statement in function");
  738. }
  739. final public ValueSuffix ValueSuffix() throws ParseException {
  740. ValueSuffix suffix;
  741. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  742. case DOT:
  743. suffix = PropertySuffix();
  744. break;
  745. case LBRACKET:
  746. suffix = ArraySuffix();
  747. break;
  748. default:
  749. jj_la1[32] = jj_gen;
  750. jj_consume_token(-1);
  751. throw new ParseException();
  752. }
  753. {if (true) return suffix;}
  754. throw new Error("Missing return statement in function");
  755. }
  756. final public PropertySuffix PropertySuffix() throws ParseException {
  757. Token t;
  758. String property;
  759. jj_consume_token(DOT);
  760. property = Identifier();
  761. {if (true) return new PropertySuffix (property);}
  762. throw new Error("Missing return statement in function");
  763. }
  764. final public ArraySuffix ArraySuffix() throws ParseException {
  765. Expression index;
  766. jj_consume_token(LBRACKET);
  767. index = Expression();
  768. jj_consume_token(RBRACKET);
  769. {if (true) return new ArraySuffix (index);}
  770. throw new Error("Missing return statement in function");
  771. }
  772. final public Literal Literal() throws ParseException {
  773. Literal ret;
  774. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  775. case TRUE:
  776. case FALSE:
  777. ret = BooleanLiteral();
  778. break;
  779. case INTEGER_LITERAL:
  780. ret = IntegerLiteral();
  781. break;
  782. case FLOATING_POINT_LITERAL:
  783. ret = FloatingPointLiteral();
  784. break;
  785. case STRING_LITERAL:
  786. ret = StringLiteral();
  787. break;
  788. case NULL:
  789. ret = NullLiteral();
  790. break;
  791. default:
  792. jj_la1[33] = jj_gen;
  793. jj_consume_token(-1);
  794. throw new ParseException();
  795. }
  796. {if (true) return ret;}
  797. throw new Error("Missing return statement in function");
  798. }
  799. final public BooleanLiteral BooleanLiteral() throws ParseException {
  800. switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  801. case TRUE:
  802. jj_consume_token(TRUE);
  803. {if (true) return BooleanLiteral.TRUE;}
  804. break;
  805. case FALSE:
  806. jj_consume_token(FALSE);
  807. {if (true) return BooleanLiteral.FALSE;}
  808. break;
  809. default:
  810. jj_la1[34] = jj_gen;
  811. jj_consume_token(-1);
  812. throw new ParseException();
  813. }
  814. throw new Error("Missing return statement in function");
  815. }
  816. final public StringLiteral StringLiteral() throws ParseException {
  817. Token t;
  818. t = jj_consume_token(STRING_LITERAL);
  819. {if (true) return StringLiteral.fromToken (t.image);}
  820. throw new Error("Missing return statement in function");
  821. }
  822. final public IntegerLiteral IntegerLiteral() throws ParseException {
  823. Token t;
  824. t = jj_consume_token(INTEGER_LITERAL);
  825. {if (true) return new IntegerLiteral (t.image);}
  826. throw new Error("Missing return statement in function");
  827. }
  828. final public FloatingPointLiteral FloatingPointLiteral() throws ParseException {
  829. Token t;
  830. t = jj_consume_token(FLOATING_POINT_LITERAL);
  831. {if (true) return new FloatingPointLiteral (t.image);}
  832. throw new Error("Missing return statement in function");
  833. }
  834. final public NullLiteral NullLiteral() throws ParseException {
  835. jj_consume_token(NULL);
  836. {if (true) return NullLiteral.SINGLETON;}
  837. throw new Error("Missing return statement in function");
  838. }
  839. final public String Identifier() throws ParseException {
  840. Token t;
  841. t = jj_consume_token(IDENTIFIER);
  842. {if (true) return t.image;}
  843. throw new Error("Missing return statement in function");
  844. }
  845. final public String QualifiedName() throws ParseException {
  846. String prefix = null, localPart = null;
  847. if (jj_2_3(2147483647)) {
  848. prefix = Identifier();
  849. jj_consume_token(COLON);
  850. } else {
  851. ;
  852. }
  853. localPart = Identifier();
  854. if (prefix == null)
  855. {if (true) return localPart;}
  856. else
  857. {if (true) return prefix + ":" + localPart;}
  858. throw new Error("Missing return statement in function");
  859. }
  860. final private boolean jj_2_1(int xla) {
  861. jj_la = xla; jj_lastpos = jj_scanpos = token;
  862. boolean retval = !jj_3_1();
  863. jj_save(0, xla);
  864. return retval;
  865. }
  866. final private boolean jj_2_2(int xla) {
  867. jj_la = xla; jj_lastpos = jj_scanpos = token;
  868. boolean retval = !jj_3_2();
  869. jj_save(1, xla);
  870. return retval;
  871. }
  872. final private boolean jj_2_3(int xla) {
  873. jj_la = xla; jj_lastpos = jj_scanpos = token;
  874. boolean retval = !jj_3_3();
  875. jj_save(2, xla);
  876. return retval;
  877. }
  878. final private boolean jj_3R_42() {
  879. if (jj_scan_token(NE2)) return true;
  880. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  881. return false;
  882. }
  883. final private boolean jj_3R_91() {
  884. if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
  885. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  886. return false;
  887. }
  888. final private boolean jj_3R_40() {
  889. if (jj_scan_token(EQ2)) return true;
  890. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  891. return false;
  892. }
  893. final private boolean jj_3R_41() {
  894. if (jj_scan_token(NE1)) return true;
  895. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  896. return false;
  897. }
  898. final private boolean jj_3R_32() {
  899. Token xsp;
  900. xsp = jj_scanpos;
  901. if (jj_3R_41()) {
  902. jj_scanpos = xsp;
  903. if (jj_3R_42()) return true;
  904. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  905. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  906. return false;
  907. }
  908. final private boolean jj_3R_90() {
  909. if (jj_scan_token(INTEGER_LITERAL)) return true;
  910. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  911. return false;
  912. }
  913. final private boolean jj_3R_39() {
  914. if (jj_scan_token(EQ1)) return true;
  915. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  916. return false;
  917. }
  918. final private boolean jj_3R_31() {
  919. Token xsp;
  920. xsp = jj_scanpos;
  921. if (jj_3R_39()) {
  922. jj_scanpos = xsp;
  923. if (jj_3R_40()) return true;
  924. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  925. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  926. return false;
  927. }
  928. final private boolean jj_3R_26() {
  929. Token xsp;
  930. xsp = jj_scanpos;
  931. if (jj_3R_31()) {
  932. jj_scanpos = xsp;
  933. if (jj_3R_32()) return true;
  934. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  935. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  936. if (jj_3R_25()) return true;
  937. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  938. return false;
  939. }
  940. final private boolean jj_3R_70() {
  941. if (jj_scan_token(NOT2)) return true;
  942. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  943. return false;
  944. }
  945. final private boolean jj_3R_21() {
  946. if (jj_3R_25()) return true;
  947. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  948. Token xsp;
  949. while (true) {
  950. xsp = jj_scanpos;
  951. if (jj_3R_26()) { jj_scanpos = xsp; break; }
  952. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  953. }
  954. return false;
  955. }
  956. final private boolean jj_3R_92() {
  957. if (jj_scan_token(STRING_LITERAL)) return true;
  958. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  959. return false;
  960. }
  961. final private boolean jj_3R_62() {
  962. if (jj_scan_token(EMPTY)) return true;
  963. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  964. return false;
  965. }
  966. final private boolean jj_3R_61() {
  967. if (jj_scan_token(MINUS)) return true;
  968. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  969. return false;
  970. }
  971. final private boolean jj_3R_69() {
  972. if (jj_scan_token(NOT1)) return true;
  973. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  974. return false;
  975. }
  976. final private boolean jj_3R_60() {
  977. Token xsp;
  978. xsp = jj_scanpos;
  979. if (jj_3R_69()) {
  980. jj_scanpos = xsp;
  981. if (jj_3R_70()) return true;
  982. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  983. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  984. return false;
  985. }
  986. final private boolean jj_3R_55() {
  987. Token xsp;
  988. xsp = jj_scanpos;
  989. if (jj_3R_60()) {
  990. jj_scanpos = xsp;
  991. if (jj_3R_61()) {
  992. jj_scanpos = xsp;
  993. if (jj_3R_62()) return true;
  994. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  995. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  996. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  997. return false;
  998. }
  999. final private boolean jj_3R_96() {
  1000. if (jj_scan_token(FALSE)) return true;
  1001. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1002. return false;
  1003. }
  1004. final private boolean jj_3R_43() {
  1005. Token xsp;
  1006. while (true) {
  1007. xsp = jj_scanpos;
  1008. if (jj_3R_55()) { jj_scanpos = xsp; break; }
  1009. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1010. }
  1011. if (jj_3R_56()) return true;
  1012. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1013. return false;
  1014. }
  1015. final private boolean jj_3R_95() {
  1016. if (jj_scan_token(TRUE)) return true;
  1017. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1018. return false;
  1019. }
  1020. final private boolean jj_3R_89() {
  1021. Token xsp;
  1022. xsp = jj_scanpos;
  1023. if (jj_3R_95()) {
  1024. jj_scanpos = xsp;
  1025. if (jj_3R_96()) return true;
  1026. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1027. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1028. return false;
  1029. }
  1030. final private boolean jj_3R_85() {
  1031. if (jj_3R_93()) return true;
  1032. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1033. return false;
  1034. }
  1035. final private boolean jj_3R_84() {
  1036. if (jj_3R_92()) return true;
  1037. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1038. return false;
  1039. }
  1040. final private boolean jj_3R_83() {
  1041. if (jj_3R_91()) return true;
  1042. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1043. return false;
  1044. }
  1045. final private boolean jj_3R_82() {
  1046. if (jj_3R_90()) return true;
  1047. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1048. return false;
  1049. }
  1050. final private boolean jj_3R_28() {
  1051. if (jj_scan_token(AND2)) return true;
  1052. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1053. return false;
  1054. }
  1055. final private boolean jj_3R_81() {
  1056. if (jj_3R_89()) return true;
  1057. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1058. return false;
  1059. }
  1060. final private boolean jj_3R_76() {
  1061. Token xsp;
  1062. xsp = jj_scanpos;
  1063. if (jj_3R_81()) {
  1064. jj_scanpos = xsp;
  1065. if (jj_3R_82()) {
  1066. jj_scanpos = xsp;
  1067. if (jj_3R_83()) {
  1068. jj_scanpos = xsp;
  1069. if (jj_3R_84()) {
  1070. jj_scanpos = xsp;
  1071. if (jj_3R_85()) return true;
  1072. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1073. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1074. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1075. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1076. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1077. return false;
  1078. }
  1079. final private boolean jj_3R_11() {
  1080. if (jj_3R_14()) return true;
  1081. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1082. if (jj_scan_token(COND)) return true;
  1083. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1084. if (jj_3R_15()) return true;
  1085. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1086. if (jj_scan_token(COLON)) return true;
  1087. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1088. if (jj_3R_15()) return true;
  1089. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1090. return false;
  1091. }
  1092. final private boolean jj_3R_27() {
  1093. if (jj_scan_token(AND1)) return true;
  1094. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1095. return false;
  1096. }
  1097. final private boolean jj_3R_22() {
  1098. Token xsp;
  1099. xsp = jj_scanpos;
  1100. if (jj_3R_27()) {
  1101. jj_scanpos = xsp;
  1102. if (jj_3R_28()) return true;
  1103. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1104. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1105. if (jj_3R_21()) return true;
  1106. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1107. return false;
  1108. }
  1109. final private boolean jj_3R_17() {
  1110. if (jj_3R_21()) return true;
  1111. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1112. Token xsp;
  1113. while (true) {
  1114. xsp = jj_scanpos;
  1115. if (jj_3R_22()) { jj_scanpos = xsp; break; }
  1116. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1117. }
  1118. return false;
  1119. }
  1120. final private boolean jj_3R_68() {
  1121. if (jj_scan_token(MODULUS2)) return true;
  1122. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1123. return false;
  1124. }
  1125. final private boolean jj_3R_88() {
  1126. if (jj_scan_token(LBRACKET)) return true;
  1127. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1128. if (jj_3R_15()) return true;
  1129. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1130. if (jj_scan_token(RBRACKET)) return true;
  1131. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1132. return false;
  1133. }
  1134. final private boolean jj_3R_66() {
  1135. if (jj_scan_token(DIVIDE2)) return true;
  1136. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1137. return false;
  1138. }
  1139. final private boolean jj_3R_67() {
  1140. if (jj_scan_token(MODULUS1)) return true;
  1141. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1142. return false;
  1143. }
  1144. final private boolean jj_3R_59() {
  1145. Token xsp;
  1146. xsp = jj_scanpos;
  1147. if (jj_3R_67()) {
  1148. jj_scanpos = xsp;
  1149. if (jj_3R_68()) return true;
  1150. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1151. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1152. return false;
  1153. }
  1154. final private boolean jj_3R_65() {
  1155. if (jj_scan_token(DIVIDE1)) return true;
  1156. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1157. return false;
  1158. }
  1159. final private boolean jj_3R_87() {
  1160. if (jj_scan_token(DOT)) return true;
  1161. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1162. if (jj_3R_13()) return true;
  1163. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1164. return false;
  1165. }
  1166. final private boolean jj_3R_58() {
  1167. Token xsp;
  1168. xsp = jj_scanpos;
  1169. if (jj_3R_65()) {
  1170. jj_scanpos = xsp;
  1171. if (jj_3R_66()) return true;
  1172. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1173. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1174. return false;
  1175. }
  1176. final private boolean jj_3R_57() {
  1177. if (jj_scan_token(MULTIPLY)) return true;
  1178. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1179. return false;
  1180. }
  1181. final private boolean jj_3R_44() {
  1182. Token xsp;
  1183. xsp = jj_scanpos;
  1184. if (jj_3R_57()) {
  1185. jj_scanpos = xsp;
  1186. if (jj_3R_58()) {
  1187. jj_scanpos = xsp;
  1188. if (jj_3R_59()) return true;
  1189. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1190. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1191. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1192. if (jj_3R_43()) return true;
  1193. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1194. return false;
  1195. }
  1196. final private boolean jj_3R_24() {
  1197. if (jj_scan_token(OR2)) return true;
  1198. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1199. return false;
  1200. }
  1201. final private boolean jj_3R_80() {
  1202. if (jj_3R_88()) return true;
  1203. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1204. return false;
  1205. }
  1206. final private boolean jj_3R_33() {
  1207. if (jj_3R_43()) return true;
  1208. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1209. Token xsp;
  1210. while (true) {
  1211. xsp = jj_scanpos;
  1212. if (jj_3R_44()) { jj_scanpos = xsp; break; }
  1213. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1214. }
  1215. return false;
  1216. }
  1217. final private boolean jj_3R_79() {
  1218. if (jj_3R_87()) return true;
  1219. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1220. return false;
  1221. }
  1222. final private boolean jj_3R_75() {
  1223. Token xsp;
  1224. xsp = jj_scanpos;
  1225. if (jj_3R_79()) {
  1226. jj_scanpos = xsp;
  1227. if (jj_3R_80()) return true;
  1228. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1229. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1230. return false;
  1231. }
  1232. final private boolean jj_3R_23() {
  1233. if (jj_scan_token(OR1)) return true;
  1234. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1235. return false;
  1236. }
  1237. final private boolean jj_3R_18() {
  1238. Token xsp;
  1239. xsp = jj_scanpos;
  1240. if (jj_3R_23()) {
  1241. jj_scanpos = xsp;
  1242. if (jj_3R_24()) return true;
  1243. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1244. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1245. if (jj_3R_17()) return true;
  1246. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1247. return false;
  1248. }
  1249. final private boolean jj_3R_14() {
  1250. if (jj_3R_17()) return true;
  1251. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1252. Token xsp;
  1253. while (true) {
  1254. xsp = jj_scanpos;
  1255. if (jj_3R_18()) { jj_scanpos = xsp; break; }
  1256. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1257. }
  1258. return false;
  1259. }
  1260. final private boolean jj_3R_94() {
  1261. if (jj_scan_token(COMMA)) return true;
  1262. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1263. if (jj_3R_15()) return true;
  1264. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1265. return false;
  1266. }
  1267. final private boolean jj_3_1() {
  1268. if (jj_3R_11()) return true;
  1269. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1270. return false;
  1271. }
  1272. final private boolean jj_3R_86() {
  1273. if (jj_3R_15()) return true;
  1274. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1275. Token xsp;
  1276. while (true) {
  1277. xsp = jj_scanpos;
  1278. if (jj_3R_94()) { jj_scanpos = xsp; break; }
  1279. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1280. }
  1281. return false;
  1282. }
  1283. final private boolean jj_3R_20() {
  1284. if (jj_3R_14()) return true;
  1285. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1286. return false;
  1287. }
  1288. final private boolean jj_3R_19() {
  1289. if (jj_3R_11()) return true;
  1290. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1291. return false;
  1292. }
  1293. final private boolean jj_3R_46() {
  1294. if (jj_scan_token(MINUS)) return true;
  1295. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1296. return false;
  1297. }
  1298. final private boolean jj_3R_15() {
  1299. Token xsp;
  1300. xsp = jj_scanpos;
  1301. if (jj_3R_19()) {
  1302. jj_scanpos = xsp;
  1303. if (jj_3R_20()) return true;
  1304. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1305. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1306. return false;
  1307. }
  1308. final private boolean jj_3R_45() {
  1309. if (jj_scan_token(PLUS)) return true;
  1310. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1311. return false;
  1312. }
  1313. final private boolean jj_3R_34() {
  1314. Token xsp;
  1315. xsp = jj_scanpos;
  1316. if (jj_3R_45()) {
  1317. jj_scanpos = xsp;
  1318. if (jj_3R_46()) return true;
  1319. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1320. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1321. if (jj_3R_33()) return true;
  1322. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1323. return false;
  1324. }
  1325. final private boolean jj_3R_77() {
  1326. if (jj_3R_12()) return true;
  1327. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1328. if (jj_scan_token(LPAREN)) return true;
  1329. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1330. Token xsp;
  1331. xsp = jj_scanpos;
  1332. if (jj_3R_86()) jj_scanpos = xsp;
  1333. else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1334. if (jj_scan_token(RPAREN)) return true;
  1335. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1336. return false;
  1337. }
  1338. final private boolean jj_3R_29() {
  1339. if (jj_3R_33()) return true;
  1340. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1341. Token xsp;
  1342. while (true) {
  1343. xsp = jj_scanpos;
  1344. if (jj_3R_34()) { jj_scanpos = xsp; break; }
  1345. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1346. }
  1347. return false;
  1348. }
  1349. final private boolean jj_3_2() {
  1350. if (jj_3R_12()) return true;
  1351. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1352. if (jj_scan_token(LPAREN)) return true;
  1353. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1354. return false;
  1355. }
  1356. final private boolean jj_3R_78() {
  1357. if (jj_scan_token(IDENTIFIER)) return true;
  1358. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1359. return false;
  1360. }
  1361. final private boolean jj_3R_74() {
  1362. if (jj_3R_78()) return true;
  1363. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1364. return false;
  1365. }
  1366. final private boolean jj_3R_73() {
  1367. if (jj_3R_77()) return true;
  1368. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1369. return false;
  1370. }
  1371. final private boolean jj_3R_72() {
  1372. if (jj_scan_token(LPAREN)) return true;
  1373. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1374. if (jj_3R_15()) return true;
  1375. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1376. if (jj_scan_token(RPAREN)) return true;
  1377. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1378. return false;
  1379. }
  1380. final private boolean jj_3R_71() {
  1381. if (jj_3R_76()) return true;
  1382. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1383. return false;
  1384. }
  1385. final private boolean jj_3_3() {
  1386. if (jj_3R_13()) return true;
  1387. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1388. if (jj_scan_token(COLON)) return true;
  1389. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1390. return false;
  1391. }
  1392. final private boolean jj_3R_63() {
  1393. Token xsp;
  1394. xsp = jj_scanpos;
  1395. if (jj_3R_71()) {
  1396. jj_scanpos = xsp;
  1397. if (jj_3R_72()) {
  1398. jj_scanpos = xsp;
  1399. if (jj_3R_73()) {
  1400. jj_scanpos = xsp;
  1401. if (jj_3R_74()) return true;
  1402. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1403. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1404. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1405. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1406. return false;
  1407. }
  1408. final private boolean jj_3R_54() {
  1409. if (jj_scan_token(LE2)) return true;
  1410. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1411. return false;
  1412. }
  1413. final private boolean jj_3R_52() {
  1414. if (jj_scan_token(GE2)) return true;
  1415. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1416. return false;
  1417. }
  1418. final private boolean jj_3R_50() {
  1419. if (jj_scan_token(GT2)) return true;
  1420. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1421. return false;
  1422. }
  1423. final private boolean jj_3R_48() {
  1424. if (jj_scan_token(LT2)) return true;
  1425. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1426. return false;
  1427. }
  1428. final private boolean jj_3R_53() {
  1429. if (jj_scan_token(LE1)) return true;
  1430. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1431. return false;
  1432. }
  1433. final private boolean jj_3R_16() {
  1434. if (jj_3R_13()) return true;
  1435. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1436. if (jj_scan_token(COLON)) return true;
  1437. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1438. return false;
  1439. }
  1440. final private boolean jj_3R_38() {
  1441. Token xsp;
  1442. xsp = jj_scanpos;
  1443. if (jj_3R_53()) {
  1444. jj_scanpos = xsp;
  1445. if (jj_3R_54()) return true;
  1446. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1447. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1448. return false;
  1449. }
  1450. final private boolean jj_3R_51() {
  1451. if (jj_scan_token(GE1)) return true;
  1452. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1453. return false;
  1454. }
  1455. final private boolean jj_3R_37() {
  1456. Token xsp;
  1457. xsp = jj_scanpos;
  1458. if (jj_3R_51()) {
  1459. jj_scanpos = xsp;
  1460. if (jj_3R_52()) return true;
  1461. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1462. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1463. return false;
  1464. }
  1465. final private boolean jj_3R_49() {
  1466. if (jj_scan_token(GT1)) return true;
  1467. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1468. return false;
  1469. }
  1470. final private boolean jj_3R_36() {
  1471. Token xsp;
  1472. xsp = jj_scanpos;
  1473. if (jj_3R_49()) {
  1474. jj_scanpos = xsp;
  1475. if (jj_3R_50()) return true;
  1476. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1477. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1478. return false;
  1479. }
  1480. final private boolean jj_3R_47() {
  1481. if (jj_scan_token(LT1)) return true;
  1482. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1483. return false;
  1484. }
  1485. final private boolean jj_3R_35() {
  1486. Token xsp;
  1487. xsp = jj_scanpos;
  1488. if (jj_3R_47()) {
  1489. jj_scanpos = xsp;
  1490. if (jj_3R_48()) return true;
  1491. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1492. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1493. return false;
  1494. }
  1495. final private boolean jj_3R_12() {
  1496. Token xsp;
  1497. xsp = jj_scanpos;
  1498. if (jj_3R_16()) jj_scanpos = xsp;
  1499. else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1500. if (jj_3R_13()) return true;
  1501. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1502. return false;
  1503. }
  1504. final private boolean jj_3R_30() {
  1505. Token xsp;
  1506. xsp = jj_scanpos;
  1507. if (jj_3R_35()) {
  1508. jj_scanpos = xsp;
  1509. if (jj_3R_36()) {
  1510. jj_scanpos = xsp;
  1511. if (jj_3R_37()) {
  1512. jj_scanpos = xsp;
  1513. if (jj_3R_38()) return true;
  1514. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1515. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1516. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1517. } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1518. if (jj_3R_29()) return true;
  1519. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1520. return false;
  1521. }
  1522. final private boolean jj_3R_25() {
  1523. if (jj_3R_29()) return true;
  1524. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1525. Token xsp;
  1526. while (true) {
  1527. xsp = jj_scanpos;
  1528. if (jj_3R_30()) { jj_scanpos = xsp; break; }
  1529. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1530. }
  1531. return false;
  1532. }
  1533. final private boolean jj_3R_64() {
  1534. if (jj_3R_75()) return true;
  1535. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1536. return false;
  1537. }
  1538. final private boolean jj_3R_13() {
  1539. if (jj_scan_token(IDENTIFIER)) return true;
  1540. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1541. return false;
  1542. }
  1543. final private boolean jj_3R_56() {
  1544. if (jj_3R_63()) return true;
  1545. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1546. Token xsp;
  1547. while (true) {
  1548. xsp = jj_scanpos;
  1549. if (jj_3R_64()) { jj_scanpos = xsp; break; }
  1550. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1551. }
  1552. return false;
  1553. }
  1554. final private boolean jj_3R_93() {
  1555. if (jj_scan_token(NULL)) return true;
  1556. if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  1557. return false;
  1558. }
  1559. public ELParserTokenManager token_source;
  1560. SimpleCharStream jj_input_stream;
  1561. public Token token, jj_nt;
  1562. private int jj_ntk;
  1563. private Token jj_scanpos, jj_lastpos;
  1564. private int jj_la;
  1565. public boolean lookingAhead = false;
  1566. private boolean jj_semLA;
  1567. private int jj_gen;
  1568. final private int[] jj_la1 = new int[35];
  1569. final private int[] jj_la1_0 = {0x6,0x6,0x6,0x20007580,0x0,0x0,0x0,0x0,0x18600000,0x600000,0x18000000,0x18600000,0x79e0000,0x180000,0x60000,0x6000000,0x1800000,0x79e0000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x10000,0x20007580,0x0,0x80000000,0x20007580,0x10000,0x7580,0x3000,};
  1570. final private int[] jj_la1_1 = {0x0,0x0,0x0,0x50c10,0xc000,0xc000,0x3000,0x3000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18,0x18,0x3e0,0xc0,0x300,0x3e0,0x10c10,0xc00,0x10c10,0x2,0x0,0x40000,0x0,0x50c10,0x2,0x0,0x0,};
  1571. final private JJCalls[] jj_2_rtns = new JJCalls[3];
  1572. private boolean jj_rescan = false;
  1573. private int jj_gc = 0;
  1574. public ELParser(java.io.InputStream stream) {
  1575. jj_input_stream = new SimpleCharStream(stream, 1, 1);
  1576. token_source = new ELParserTokenManager(jj_input_stream);
  1577. token = new Token();
  1578. jj_ntk = -1;
  1579. jj_gen = 0;
  1580. for (int i = 0; i < 35; i++) jj_la1[i] = -1;
  1581. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1582. }
  1583. public void ReInit(java.io.InputStream stream) {
  1584. jj_input_stream.ReInit(stream, 1, 1);
  1585. token_source.ReInit(jj_input_stream);
  1586. token = new Token();
  1587. jj_ntk = -1;
  1588. jj_gen = 0;
  1589. for (int i = 0; i < 35; i++) jj_la1[i] = -1;
  1590. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1591. }
  1592. public ELParser(java.io.Reader stream) {
  1593. jj_input_stream = new SimpleCharStream(stream, 1, 1);
  1594. token_source = new ELParserTokenManager(jj_input_stream);
  1595. token = new Token();
  1596. jj_ntk = -1;
  1597. jj_gen = 0;
  1598. for (int i = 0; i < 35; i++) jj_la1[i] = -1;
  1599. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1600. }
  1601. public void ReInit(java.io.Reader stream) {
  1602. jj_input_stream.ReInit(stream, 1, 1);
  1603. token_source.ReInit(jj_input_stream);
  1604. token = new Token();
  1605. jj_ntk = -1;
  1606. jj_gen = 0;
  1607. for (int i = 0; i < 35; i++) jj_la1[i] = -1;
  1608. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1609. }
  1610. public ELParser(ELParserTokenManager tm) {
  1611. token_source = tm;
  1612. token = new Token();
  1613. jj_ntk = -1;
  1614. jj_gen = 0;
  1615. for (int i = 0; i < 35; i++) jj_la1[i] = -1;
  1616. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1617. }
  1618. public void ReInit(ELParserTokenManager tm) {
  1619. token_source = tm;
  1620. token = new Token();
  1621. jj_ntk = -1;
  1622. jj_gen = 0;
  1623. for (int i = 0; i < 35; i++) jj_la1[i] = -1;
  1624. for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
  1625. }
  1626. final private Token jj_consume_token(int kind) throws ParseException {
  1627. Token oldToken;
  1628. if ((oldToken = token).next != null) token = token.next;
  1629. else token = token.next = token_source.getNextToken();
  1630. jj_ntk = -1;
  1631. if (token.kind == kind) {
  1632. jj_gen++;
  1633. if (++jj_gc > 100) {
  1634. jj_gc = 0;
  1635. for (int i = 0; i < jj_2_rtns.length; i++) {
  1636. JJCalls c = jj_2_rtns[i];
  1637. while (c != null) {
  1638. if (c.gen < jj_gen) c.first = null;
  1639. c = c.next;
  1640. }
  1641. }
  1642. }
  1643. return token;
  1644. }
  1645. token = oldToken;
  1646. jj_kind = kind;
  1647. throw generateParseException();
  1648. }
  1649. final private boolean jj_scan_token(int kind) {
  1650. if (jj_scanpos == jj_lastpos) {
  1651. jj_la--;
  1652. if (jj_scanpos.next == null) {
  1653. jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken();
  1654. } else {
  1655. jj_lastpos = jj_scanpos = jj_scanpos.next;
  1656. }
  1657. } else {
  1658. jj_scanpos = jj_scanpos.next;
  1659. }
  1660. if (jj_rescan) {
  1661. int i = 0; Token tok = token;
  1662. while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; }
  1663. if (tok != null) jj_add_error_token(kind, i);
  1664. }
  1665. return (jj_scanpos.kind != kind);
  1666. }
  1667. final public Token getNextToken() {
  1668. if (token.next != null) token = token.next;
  1669. else token = token.next = token_source.getNextToken();
  1670. jj_ntk = -1;
  1671. jj_gen++;
  1672. return token;
  1673. }
  1674. final public Token getToken(int index) {
  1675. Token t = lookingAhead ? jj_scanpos : token;
  1676. for (int i = 0; i < index; i++) {
  1677. if (t.next != null) t = t.next;
  1678. else t = t.next = token_source.getNextToken();
  1679. }
  1680. return t;
  1681. }
  1682. final private int jj_ntk() {
  1683. if ((jj_nt=token.next) == null)
  1684. return (jj_ntk = (token.next=token_source.getNextToken()).kind);
  1685. else
  1686. return (jj_ntk = jj_nt.kind);
  1687. }
  1688. private java.util.Vector jj_expentries = new java.util.Vector();
  1689. private int[] jj_expentry;
  1690. private int jj_kind = -1;
  1691. private int[] jj_lasttokens = new int[100];
  1692. private int jj_endpos;
  1693. private void jj_add_error_token(int kind, int pos) {
  1694. if (pos >= 100) return;
  1695. if (pos == jj_endpos + 1) {
  1696. jj_lasttokens[jj_endpos++] = kind;
  1697. } else if (jj_endpos != 0) {
  1698. jj_expentry = new int[jj_endpos];
  1699. for (int i = 0; i < jj_endpos; i++) {
  1700. jj_expentry[i] = jj_lasttokens[i];
  1701. }
  1702. boolean exists = false;
  1703. for (java.util.Enumeration enum = jj_expentries.elements(); enum.hasMoreElements();) {
  1704. int[] oldentry = (int[])(enum.nextElement());
  1705. if (oldentry.length == jj_expentry.length) {
  1706. exists = true;
  1707. for (int i = 0; i < jj_expentry.length; i++) {
  1708. if (oldentry[i] != jj_expentry[i]) {
  1709. exists = false;
  1710. break;
  1711. }
  1712. }
  1713. if (exists) break;
  1714. }
  1715. }
  1716. if (!exists) jj_expentries.addElement(jj_expentry);
  1717. if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind;
  1718. }
  1719. }
  1720. final public ParseException generateParseException() {
  1721. jj_expentries.removeAllElements();
  1722. boolean[] la1tokens = new boolean[55];
  1723. for (int i = 0; i < 55; i++) {
  1724. la1tokens[i] = false;
  1725. }
  1726. if (jj_kind >= 0) {
  1727. la1tokens[jj_kind] = true;
  1728. jj_kind = -1;
  1729. }
  1730. for (int i = 0; i < 35; i++) {
  1731. if (jj_la1[i] == jj_gen) {
  1732. for (int j = 0; j < 32; j++) {
  1733. if ((jj_la1_0[i] & (1<<j)) != 0) {
  1734. la1tokens[j] = true;
  1735. }
  1736. if ((jj_la1_1[i] & (1<<j)) != 0) {
  1737. la1tokens[32+j] = true;
  1738. }
  1739. }
  1740. }
  1741. }
  1742. for (int i = 0; i < 55; i++) {
  1743. if (la1tokens[i]) {
  1744. jj_expentry = new int[1];
  1745. jj_expentry[0] = i;
  1746. jj_expentries.addElement(jj_expentry);
  1747. }
  1748. }
  1749. jj_endpos = 0;
  1750. jj_rescan_token();
  1751. jj_add_error_token(0, 0);
  1752. int[][] exptokseq = new int[jj_expentries.size()][];
  1753. for (int i = 0; i < jj_expentries.size(); i++) {
  1754. exptokseq[i] = (int[])jj_expentries.elementAt(i);
  1755. }
  1756. return new ParseException(token, exptokseq, tokenImage);
  1757. }
  1758. final public void enable_tracing() {
  1759. }
  1760. final public void disable_tracing() {
  1761. }
  1762. final private void jj_rescan_token() {
  1763. jj_rescan = true;
  1764. for (int i = 0; i < 3; i++) {
  1765. JJCalls p = jj_2_rtns[i];
  1766. do {
  1767. if (p.gen > jj_gen) {
  1768. jj_la = p.arg; jj_lastpos = jj_scanpos = p.first;
  1769. switch (i) {
  1770. case 0: jj_3_1(); break;
  1771. case 1: jj_3_2(); break;
  1772. case 2: jj_3_3(); break;
  1773. }
  1774. }
  1775. p = p.next;
  1776. } while (p != null);
  1777. }
  1778. jj_rescan = false;
  1779. }
  1780. final private void jj_save(int index, int xla) {
  1781. JJCalls p = jj_2_rtns[index];
  1782. while (p.gen > jj_gen) {
  1783. if (p.next == null) { p = p.next = new JJCalls(); break; }
  1784. p = p.next;
  1785. }
  1786. p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla;
  1787. }
  1788. static final class JJCalls {
  1789. int gen;
  1790. Token first;
  1791. int arg;
  1792. JJCalls next;
  1793. }
  1794. }