geirm 00/12/28 08:22:42
Modified: src/java/org/apache/velocity/runtime/parser Parser.java
Parser.jj ParserConstants.java
ParserTokenManager.java ParserTreeConstants.java
Log:
Parser.jjt followers.
Revision Changes Path
1.51 +545 -322
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.java
Index: Parser.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.java,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- Parser.java 2000/12/27 23:48:59 1.50
+++ Parser.java 2000/12/28 16:22:25 1.51
@@ -21,7 +21,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
- * @version $Id: Parser.java,v 1.50 2000/12/27 23:48:59 geirm Exp $
+ * @version $Id: Parser.java,v 1.51 2000/12/28 16:22:25 geirm Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants
{/*@bgen(jjtree)*/
protected JJTParserState jjtree = new JJTParserState();/**
@@ -497,22 +497,30 @@
case NUMBER_LITERAL:
NumberLiteral();
break;
- case LBRACKET:
- ObjectArray();
- break;
- case TRUE:
- True();
- break;
- case FALSE:
- False();
- break;
- case WHITESPACE:
- jj_consume_token(WHITESPACE);
- break;
default:
jj_la1[3] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
+ if (jj_2_2(4)) {
+ IntegerRange();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ ObjectArray();
+ break;
+ case TRUE:
+ True();
+ break;
+ case FALSE:
+ False();
+ break;
+ case WHITESPACE:
+ jj_consume_token(WHITESPACE);
+ break;
+ default:
+ jj_la1[4] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
}
}
@@ -581,7 +589,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[4] = jj_gen;
+ jj_la1[5] = jj_gen;
;
}
jj_consume_token(LPAREN);
@@ -600,7 +608,7 @@
;
break;
default:
- jj_la1[5] = jj_gen;
+ jj_la1[6] = jj_gen;
break label_3;
}
DirectiveArg();
@@ -637,7 +645,7 @@
;
break;
default:
- jj_la1[6] = jj_gen;
+ jj_la1[7] = jj_gen;
break label_4;
}
}
@@ -728,15 +736,108 @@
;
break;
default:
- jj_la1[7] = jj_gen;
+ jj_la1[8] = jj_gen;
break label_5;
}
jj_consume_token(COMMA);
Parameter();
}
break;
+ default:
+ jj_la1[9] = jj_gen;
+ ;
+ }
+ jj_consume_token(RBRACKET);
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ {if (true) throw (RuntimeException)jjte000;}
+ }
+ if (jjte000 instanceof ParseException) {
+ {if (true) throw (ParseException)jjte000;}
+ }
+ {if (true) throw (Error)jjte000;}
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ }
+ }
+ }
+
+/**
+ * supports the [n..m] vector generator for use in
+ * the #foreach() to generate measured ranges w/o
+ * needing explicit support from the app/servlet
+ */
+ final public void IntegerRange() throws ParseException {
+ /*@bgen(jjtree) IntegerRange */
+ ASTIntegerRange jjtn000 = new ASTIntegerRange(this, JJTINTEGERRANGE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ try {
+ jj_consume_token(LBRACKET);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case WHITESPACE:
+ jj_consume_token(WHITESPACE);
+ break;
+ default:
+ jj_la1[10] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ case LCURLY:
+ Reference();
+ break;
+ case NUMBER_LITERAL:
+ NumberLiteral();
+ break;
+ default:
+ jj_la1[11] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case WHITESPACE:
+ jj_consume_token(WHITESPACE);
+ break;
+ default:
+ jj_la1[12] = jj_gen;
+ ;
+ }
+ jj_consume_token(DOUBLEDOT);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case WHITESPACE:
+ jj_consume_token(WHITESPACE);
+ break;
+ default:
+ jj_la1[13] = jj_gen;
+ ;
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case IDENTIFIER:
+ case LCURLY:
+ Reference();
+ break;
+ case NUMBER_LITERAL:
+ NumberLiteral();
+ break;
+ default:
+ jj_la1[14] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case WHITESPACE:
+ jj_consume_token(WHITESPACE);
+ break;
default:
- jj_la1[8] = jj_gen;
+ jj_la1[15] = jj_gen;
;
}
jj_consume_token(RBRACKET);
@@ -772,7 +873,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[9] = jj_gen;
+ jj_la1[16] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -796,7 +897,7 @@
NumberLiteral();
break;
default:
- jj_la1[10] = jj_gen;
+ jj_la1[17] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -805,7 +906,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[11] = jj_gen;
+ jj_la1[18] = jj_gen;
;
}
}
@@ -840,7 +941,7 @@
;
break;
default:
- jj_la1[12] = jj_gen;
+ jj_la1[19] = jj_gen;
break label_6;
}
jj_consume_token(COMMA);
@@ -848,7 +949,7 @@
}
break;
default:
- jj_la1[13] = jj_gen;
+ jj_la1[20] = jj_gen;
;
}
jj_consume_token(REFMOD2_RPAREN);
@@ -884,7 +985,7 @@
jj_consume_token(LCURLY);
break;
default:
- jj_la1[14] = jj_gen;
+ jj_la1[21] = jj_gen;
;
}
jj_consume_token(IDENTIFIER);
@@ -893,18 +994,18 @@
jj_consume_token(RCURLY);
break;
default:
- jj_la1[15] = jj_gen;
+ jj_la1[22] = jj_gen;
;
}
label_7:
while (true) {
- if (jj_2_2(2)) {
+ if (jj_2_3(2)) {
;
} else {
break label_7;
}
jj_consume_token(DOT);
- if (jj_2_3(3)) {
+ if (jj_2_4(3)) {
Method();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -912,7 +1013,7 @@
Identifier();
break;
default:
- jj_la1[16] = jj_gen;
+ jj_la1[23] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -922,7 +1023,7 @@
jj_consume_token(RCURLY);
break;
default:
- jj_la1[17] = jj_gen;
+ jj_la1[24] = jj_gen;
;
}
}
@@ -1009,7 +1110,7 @@
jj_consume_token(ESCAPE);
break;
default:
- jj_la1[18] = jj_gen;
+ jj_la1[25] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1037,7 +1138,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[19] = jj_gen;
+ jj_la1[26] = jj_gen;
;
}
jj_consume_token(LPAREN);
@@ -1072,7 +1173,7 @@
;
break;
default:
- jj_la1[20] = jj_gen;
+ jj_la1[27] = jj_gen;
break label_8;
}
}
@@ -1105,13 +1206,13 @@
;
break;
default:
- jj_la1[21] = jj_gen;
+ jj_la1[28] = jj_gen;
break label_9;
}
}
break;
default:
- jj_la1[22] = jj_gen;
+ jj_la1[29] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1119,7 +1220,7 @@
ElseStatement();
break;
default:
- jj_la1[23] = jj_gen;
+ jj_la1[30] = jj_gen;
;
}
jj_consume_token(END);
@@ -1180,7 +1281,7 @@
;
break;
default:
- jj_la1[24] = jj_gen;
+ jj_la1[31] = jj_gen;
break label_10;
}
}
@@ -1236,7 +1337,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[25] = jj_gen;
+ jj_la1[32] = jj_gen;
;
}
jj_consume_token(LPAREN);
@@ -1271,7 +1372,7 @@
;
break;
default:
- jj_la1[26] = jj_gen;
+ jj_la1[33] = jj_gen;
break label_11;
}
}
@@ -1327,12 +1428,12 @@
jjtree.openNodeScope(jjtn000);
try {
jj_consume_token(SET_DIRECTIVE);
- if (jj_2_4(2)) {
+ if (jj_2_5(2)) {
jj_consume_token(WHITESPACE);
} else {
;
}
- if (jj_2_5(2)) {
+ if (jj_2_6(2)) {
jj_consume_token(LPAREN);
Expression();
jj_consume_token(RPAREN);
@@ -1354,12 +1455,12 @@
jj_consume_token(NEWLINE);
break;
default:
- jj_la1[27] = jj_gen;
+ jj_la1[34] = jj_gen;
;
}
break;
default:
- jj_la1[28] = jj_gen;
+ jj_la1[35] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1407,7 +1508,7 @@
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);
try {
- if (jj_2_6(2147483647)) {
+ if (jj_2_7(2147483647)) {
Assignment();
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1424,7 +1525,7 @@
ConditionalOrExpression();
break;
default:
- jj_la1[29] = jj_gen;
+ jj_la1[36] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1489,7 +1590,7 @@
;
break;
default:
- jj_la1[30] = jj_gen;
+ jj_la1[37] = jj_gen;
break label_12;
}
jj_consume_token(LOGICAL_OR);
@@ -1529,7 +1630,7 @@
;
break;
default:
- jj_la1[31] = jj_gen;
+ jj_la1[38] = jj_gen;
break label_13;
}
jj_consume_token(LOGICAL_AND);
@@ -1570,7 +1671,7 @@
;
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[39] = jj_gen;
break label_14;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1629,7 +1730,7 @@
}
break;
default:
- jj_la1[33] = jj_gen;
+ jj_la1[40] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1648,7 +1749,7 @@
;
break;
default:
- jj_la1[34] = jj_gen;
+ jj_la1[41] = jj_gen;
break label_15;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1761,7 +1862,7 @@
}
break;
default:
- jj_la1[35] = jj_gen;
+ jj_la1[42] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1778,7 +1879,7 @@
;
break;
default:
- jj_la1[36] = jj_gen;
+ jj_la1[43] = jj_gen;
break label_16;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1837,7 +1938,7 @@
}
break;
default:
- jj_la1[37] = jj_gen;
+ jj_la1[44] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1855,7 +1956,7 @@
;
break;
default:
- jj_la1[38] = jj_gen;
+ jj_la1[45] = jj_gen;
break label_17;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1941,7 +2042,7 @@
}
break;
default:
- jj_la1[39] = jj_gen;
+ jj_la1[46] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1949,13 +2050,13 @@
}
final public void UnaryExpression() throws ParseException {
- if (jj_2_7(2)) {
+ if (jj_2_8(2)) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[40] = jj_gen;
+ jj_la1[47] = jj_gen;
;
}
jj_consume_token(LOGICAL_NOT);
@@ -1997,7 +2098,7 @@
PrimaryExpression();
break;
default:
- jj_la1[41] = jj_gen;
+ jj_la1[48] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2010,7 +2111,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[42] = jj_gen;
+ jj_la1[49] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2024,31 +2125,39 @@
case LCURLY:
Reference();
break;
- case LBRACKET:
- ObjectArray();
- break;
- case TRUE:
- True();
- break;
- case FALSE:
- False();
- break;
- case LPAREN:
- jj_consume_token(LPAREN);
- Expression();
- jj_consume_token(RPAREN);
- break;
default:
- jj_la1[43] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
+ jj_la1[50] = jj_gen;
+ if (jj_2_9(4)) {
+ IntegerRange();
+ } else {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ ObjectArray();
+ break;
+ case TRUE:
+ True();
+ break;
+ case FALSE:
+ False();
+ break;
+ case LPAREN:
+ jj_consume_token(LPAREN);
+ Expression();
+ jj_consume_token(RPAREN);
+ break;
+ default:
+ jj_la1[51] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
+ }
+ }
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case WHITESPACE:
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[44] = jj_gen;
+ jj_la1[52] = jj_gen;
;
}
}
@@ -2101,294 +2210,241 @@
jj_save(6, xla);
return retval;
}
-
- final private boolean jj_3R_64() {
- if (jj_3R_66()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3R_72()) { jj_scanpos = xsp; break; }
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- }
- return false;
- }
-
- final private boolean jj_3R_76() {
- if (jj_scan_token(LOGICAL_GE)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_64()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_75() {
- if (jj_scan_token(LOGICAL_LE)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_64()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_74() {
- if (jj_scan_token(LOGICAL_GT)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_64()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
- final private boolean jj_3R_69() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_73()) {
- jj_scanpos = xsp;
- if (jj_3R_74()) {
- jj_scanpos = xsp;
- if (jj_3R_75()) {
- jj_scanpos = xsp;
- if (jj_3R_76()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
+ final private boolean jj_2_8(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ boolean retval = !jj_3_8();
+ jj_save(7, xla);
+ return retval;
}
- final private boolean jj_3R_73() {
- if (jj_scan_token(LOGICAL_LT)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_64()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
+ final private boolean jj_2_9(int xla) {
+ jj_la = xla; jj_lastpos = jj_scanpos = token;
+ boolean retval = !jj_3_9();
+ jj_save(8, xla);
+ return retval;
}
- final private boolean jj_3R_61() {
- if (jj_3R_64()) return true;
+ final private boolean jj_3R_70() {
+ if (jj_3R_73()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_69()) { jj_scanpos = xsp; break; }
+ if (jj_3R_78()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_71() {
+ final private boolean jj_3R_80() {
if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_61()) return true;
+ if (jj_3R_70()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_68() {
+ final private boolean jj_3R_77() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_70()) {
+ if (jj_3R_79()) {
jj_scanpos = xsp;
- if (jj_3R_71()) return true;
+ if (jj_3R_80()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_70() {
+ final private boolean jj_3R_79() {
if (jj_scan_token(LOGICAL_EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_61()) return true;
+ if (jj_3R_70()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_58() {
- if (jj_3R_61()) return true;
+ final private boolean jj_3R_67() {
+ if (jj_3R_70()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_68()) { jj_scanpos = xsp; break; }
+ if (jj_3R_77()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_65() {
+ final private boolean jj_3R_74() {
if (jj_scan_token(LOGICAL_AND)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_58()) return true;
+ if (jj_3R_67()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_54() {
- if (jj_3R_58()) return true;
+ final private boolean jj_3R_64() {
+ if (jj_3R_67()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_65()) { jj_scanpos = xsp; break; }
+ if (jj_3R_74()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_63() {
+ final private boolean jj_3R_72() {
if (jj_scan_token(LOGICAL_OR)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_54()) return true;
+ if (jj_3R_64()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3_6() {
- if (jj_3R_21()) return true;
+ final private boolean jj_3_7() {
+ if (jj_3R_22()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_40() {
- if (jj_3R_54()) return true;
+ final private boolean jj_3R_50() {
+ if (jj_3R_64()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_63()) { jj_scanpos = xsp; break; }
+ if (jj_3R_72()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_39() {
- if (jj_3R_21()) return true;
+ final private boolean jj_3R_49() {
+ if (jj_3R_22()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_20()) return true;
+ if (jj_3R_21()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_27() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_35() {
+ if (jj_3R_50()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_20() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_26()) {
- jj_scanpos = xsp;
- if (jj_3R_27()) return true;
+ final private boolean jj_3R_34() {
+ if (jj_3R_49()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_26() {
- if (jj_3R_39()) return true;
+ final private boolean jj_3R_21() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_34()) {
+ jj_scanpos = xsp;
+ if (jj_3R_35()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3_5() {
+ final private boolean jj_3_6() {
if (jj_scan_token(LPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_20()) return true;
+ if (jj_3R_21()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3_4() {
+ final private boolean jj_3_5() {
if (jj_scan_token(WHITESPACE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_59() {
+ final private boolean jj_3R_68() {
if (jj_scan_token(RCURLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_18() {
- if (jj_3R_24()) return true;
+ final private boolean jj_3R_19() {
+ if (jj_3R_32()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_67() {
- if (jj_scan_token(COMMA)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_38()) return true;
+ final private boolean jj_3_2() {
+ if (jj_3R_18()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_24() {
- if (jj_scan_token(IDENTIFIER)) return true;
+ final private boolean jj_3R_76() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_48()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3_3() {
- if (jj_3R_19()) return true;
+ final private boolean jj_3_4() {
+ if (jj_3R_20()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_25() {
- if (jj_3R_38()) return true;
+ final private boolean jj_3R_33() {
+ if (jj_3R_48()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_67()) { jj_scanpos = xsp; break; }
+ if (jj_3R_76()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_46() {
+ final private boolean jj_3R_54() {
if (jj_scan_token(FALSE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_41() {
- if (jj_scan_token(STRING_LITERAL)) return true;
+ final private boolean jj_3R_32() {
+ if (jj_scan_token(IDENTIFIER)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_45() {
+ final private boolean jj_3R_53() {
if (jj_scan_token(TRUE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_42() {
- if (jj_scan_token(NUMBER_LITERAL)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3_2() {
+ final private boolean jj_3_3() {
if (jj_scan_token(DOT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
xsp = jj_scanpos;
- if (jj_3_3()) {
+ if (jj_3_4()) {
jj_scanpos = xsp;
- if (jj_3R_18()) return true;
+ if (jj_3R_19()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
xsp = jj_scanpos;
- if (jj_3R_59()) jj_scanpos = xsp;
+ if (jj_3R_68()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
@@ -2405,7 +2461,7 @@
return false;
}
- final private boolean jj_3R_43() {
+ final private boolean jj_3R_46() {
Token xsp;
xsp = jj_scanpos;
if (jj_3R_55()) jj_scanpos = xsp;
@@ -2417,157 +2473,181 @@
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
while (true) {
xsp = jj_scanpos;
- if (jj_3_2()) { jj_scanpos = xsp; break; }
+ if (jj_3_3()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_19() {
- if (jj_3R_24()) return true;
+ final private boolean jj_3R_51() {
+ if (jj_scan_token(STRING_LITERAL)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_20() {
+ if (jj_3R_32()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(LPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_25()) jj_scanpos = xsp;
+ if (jj_3R_33()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(REFMOD2_RPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_60() {
- if (jj_scan_token(COMMA)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_38()) return true;
+ final private boolean jj_3R_47() {
+ if (jj_scan_token(NUMBER_LITERAL)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_53() {
- if (jj_3R_42()) return true;
+ final private boolean jj_3R_29() {
+ if (jj_scan_token(WHITESPACE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_52() {
- if (jj_3R_43()) return true;
+ final private boolean jj_3R_63() {
+ if (jj_3R_47()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
final private boolean jj_3R_62() {
+ if (jj_3R_46()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_71() {
if (jj_scan_token(WHITESPACE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_51() {
- if (jj_3R_46()) return true;
+ final private boolean jj_3R_61() {
+ if (jj_3R_54()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_50() {
- if (jj_3R_45()) return true;
+ final private boolean jj_3R_60() {
+ if (jj_3R_53()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_49() {
- if (jj_3R_44()) return true;
+ final private boolean jj_3R_59() {
+ if (jj_3R_52()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_22() {
+ final private boolean jj_3R_23() {
if (jj_scan_token(WHITESPACE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_48() {
- if (jj_3R_41()) return true;
+ final private boolean jj_3R_58() {
+ if (jj_3R_51()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_35() {
+ final private boolean jj_3R_43() {
if (jj_scan_token(LPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_20()) return true;
+ if (jj_3R_21()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(RPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_36() {
+ final private boolean jj_3R_42() {
+ if (jj_3R_54()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_44() {
if (jj_scan_token(WHITESPACE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_34() {
- if (jj_3R_46()) return true;
+ final private boolean jj_3R_41() {
+ if (jj_3R_53()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_57() {
- if (jj_3R_38()) return true;
+ final private boolean jj_3R_31() {
+ if (jj_3R_47()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3R_60()) { jj_scanpos = xsp; break; }
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- }
return false;
}
- final private boolean jj_3R_33() {
- if (jj_3R_45()) return true;
+ final private boolean jj_3R_40() {
+ if (jj_3R_52()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_32() {
- if (jj_3R_44()) return true;
+ final private boolean jj_3R_27() {
+ if (jj_3R_47()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_47() {
+ final private boolean jj_3R_69() {
+ if (jj_scan_token(COMMA)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_48()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3_9() {
+ if (jj_3R_18()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_57() {
if (jj_scan_token(WHITESPACE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_31() {
- if (jj_3R_43()) return true;
+ final private boolean jj_3R_39() {
+ if (jj_3R_46()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_38() {
+ final private boolean jj_3R_48() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_47()) jj_scanpos = xsp;
+ if (jj_3R_57()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
xsp = jj_scanpos;
- if (jj_3R_48()) {
+ if (jj_3R_58()) {
jj_scanpos = xsp;
- if (jj_3R_49()) {
+ if (jj_3R_59()) {
jj_scanpos = xsp;
- if (jj_3R_50()) {
+ if (jj_3R_60()) {
jj_scanpos = xsp;
- if (jj_3R_51()) {
+ if (jj_3R_61()) {
jj_scanpos = xsp;
- if (jj_3R_52()) {
+ if (jj_3R_62()) {
jj_scanpos = xsp;
- if (jj_3R_53()) return true;
+ if (jj_3R_63()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -2575,56 +2655,64 @@
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
xsp = jj_scanpos;
- if (jj_3R_62()) jj_scanpos = xsp;
+ if (jj_3R_71()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_30() {
- if (jj_3R_42()) return true;
+ final private boolean jj_3R_38() {
+ if (jj_3R_47()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_29() {
- if (jj_3R_41()) return true;
+ final private boolean jj_3R_37() {
+ if (jj_3R_51()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_28() {
+ final private boolean jj_3R_25() {
if (jj_scan_token(WHITESPACE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_82() {
+ final private boolean jj_3R_36() {
+ if (jj_scan_token(WHITESPACE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_91() {
if (jj_scan_token(MODULUS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_23()) return true;
+ if (jj_3R_24()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_21() {
+ final private boolean jj_3R_22() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_28()) jj_scanpos = xsp;
+ if (jj_3R_36()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
xsp = jj_scanpos;
- if (jj_3R_29()) {
+ if (jj_3R_37()) {
jj_scanpos = xsp;
- if (jj_3R_30()) {
+ if (jj_3R_38()) {
jj_scanpos = xsp;
- if (jj_3R_31()) {
+ if (jj_3R_39()) {
jj_scanpos = xsp;
- if (jj_3R_32()) {
+ if (jj_3_9()) {
jj_scanpos = xsp;
- if (jj_3R_33()) {
+ if (jj_3R_40()) {
jj_scanpos = xsp;
- if (jj_3R_34()) {
+ if (jj_3R_41()) {
jj_scanpos = xsp;
- if (jj_3R_35()) return true;
+ if (jj_3R_42()) {
+ jj_scanpos = xsp;
+ if (jj_3R_43()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -2632,128 +2720,261 @@
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
xsp = jj_scanpos;
- if (jj_3R_36()) jj_scanpos = xsp;
+ if (jj_3R_44()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_37() {
- if (jj_3R_21()) return true;
+ final private boolean jj_3R_90() {
+ if (jj_scan_token(DIVIDE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_24()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3_7() {
+ final private boolean jj_3_8() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_22()) jj_scanpos = xsp;
+ if (jj_3R_23()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(LOGICAL_NOT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_23()) return true;
+ if (jj_3R_24()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_23() {
+ final private boolean jj_3R_24() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3_7()) {
+ if (jj_3_8()) {
jj_scanpos = xsp;
- if (jj_3R_37()) return true;
+ if (jj_3R_45()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_81() {
- if (jj_scan_token(DIVIDE)) return true;
+ final private boolean jj_3R_45() {
+ if (jj_3R_22()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_23()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_89() {
+ if (jj_scan_token(MULTIPLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_24()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_77() {
+ final private boolean jj_3R_86() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_80()) {
+ if (jj_3R_89()) {
jj_scanpos = xsp;
- if (jj_3R_81()) {
+ if (jj_3R_90()) {
jj_scanpos = xsp;
- if (jj_3R_82()) return true;
+ if (jj_3R_91()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_80() {
- if (jj_scan_token(MULTIPLY)) return true;
+ final private boolean jj_3R_65() {
+ if (jj_scan_token(WHITESPACE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_23()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_30() {
+ if (jj_3R_46()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_44() {
+ final private boolean jj_3R_28() {
+ if (jj_scan_token(WHITESPACE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_26() {
+ if (jj_3R_46()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_66() {
+ if (jj_3R_48()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_69()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_18() {
if (jj_scan_token(LBRACKET)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_57()) jj_scanpos = xsp;
+ if (jj_3R_25()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_scan_token(RBRACKET)) return true;
+ xsp = jj_scanpos;
+ if (jj_3R_26()) {
+ jj_scanpos = xsp;
+ if (jj_3R_27()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3_1() {
- if (jj_scan_token(DOUBLE_ESCAPE)) return true;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ xsp = jj_scanpos;
+ if (jj_3R_28()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(DOUBLEDOT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ xsp = jj_scanpos;
+ if (jj_3R_29()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ xsp = jj_scanpos;
+ if (jj_3R_30()) {
+ jj_scanpos = xsp;
+ if (jj_3R_31()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ xsp = jj_scanpos;
+ if (jj_3R_65()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(RBRACKET)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_66() {
- if (jj_3R_23()) return true;
+ final private boolean jj_3R_75() {
+ if (jj_3R_24()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_77()) { jj_scanpos = xsp; break; }
+ if (jj_3R_86()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_79() {
+ final private boolean jj_3R_88() {
if (jj_scan_token(MINUS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_66()) return true;
+ if (jj_3R_75()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_72() {
+ final private boolean jj_3R_87() {
+ if (jj_scan_token(PLUS)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_75()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_81() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_78()) {
+ if (jj_3R_87()) {
jj_scanpos = xsp;
- if (jj_3R_79()) return true;
+ if (jj_3R_88()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_78() {
- if (jj_scan_token(PLUS)) return true;
+ final private boolean jj_3R_52() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_66()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(RBRACKET)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_73() {
+ if (jj_3R_75()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_81()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3_1() {
+ if (jj_scan_token(DOUBLE_ESCAPE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_85() {
+ if (jj_scan_token(LOGICAL_GE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_73()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_84() {
+ if (jj_scan_token(LOGICAL_LE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_73()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_83() {
+ if (jj_scan_token(LOGICAL_GT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_66()) return true;
+ if (jj_3R_73()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
+ final private boolean jj_3R_82() {
+ if (jj_scan_token(LOGICAL_LT)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_73()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_78() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_82()) {
+ jj_scanpos = xsp;
+ if (jj_3R_83()) {
+ jj_scanpos = xsp;
+ if (jj_3R_84()) {
+ jj_scanpos = xsp;
+ if (jj_3R_85()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
public ParserTokenManager token_source;
ASCII_CharStream jj_input_stream;
public Token token, jj_nt;
@@ -2763,10 +2984,10 @@
public boolean lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
- final private int[] jj_la1 = new int[45];
- final private int[] jj_la1_0 =
{0x13f0360,0x13f0360,0x380000,0x7800002,0x800000,0x7800002,0x13f0360,0x10,0x7800002,0x800000,0x7000002,0x800000,0x10,0x7800002,0x0,0x0,0x0,0x0,0x1060060,0x800000,0x13f0360,0x0,0x0,0x0,0x13f0360,0x800000,0x13f0360,0x8000000,0x7800022,0x7800022,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x30000000,0xc0000000,0xc0000000,0x800000,0x7800022,0x800000,0x7000022,0x800000,};
- final private int[] jj_la1_1 =
{0x38a9000,0x38a9000,0x0,0x28a0000,0x0,0x28a0000,0x38a9000,0x0,0x2820000,0x0,0x2820000,0x0,0x0,0x2820000,0x2000000,0x4000000,0x800000,0x4000000,0x1020000,0x0,0x38a9000,0x2000,0x2000,0x4000,0x38a9000,0x0,0x38a9000,0x0,0x2820200,0x2820200,0x4,0x2,0x180,0x180,0x78,0x78,0x0,0x0,0x1,0x1,0x0,0x2820000,0x0,0x2820000,0x0,};
- final private JJCalls[] jj_2_rtns = new JJCalls[7];
+ final private int[] jj_la1 = new int[53];
+ final private int[] jj_la1_0 =
{0x13f0360,0x13f0360,0x380000,0x1000000,0x6800002,0x800000,0x7800002,0x13f0360,0x8,0x7800002,0x800000,0x0,0x800000,0x800000,0x0,0x800000,0x800000,0x7000002,0x800000,0x8,0x7800002,0x0,0x0,0x0,0x0,0x1060060,0x800000,0x13f0360,0x0,0x0,0x0,0x13f0360,0x800000,0x13f0360,0x8000000,0x7800022,0x7800022,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x30000000,0xc0000000,0xc0000000,0x800000,0x7800022,0x800000,0x1000000,0x6000022,0x800000,};
+ final private int[] jj_la1_1 =
{0x38a9000,0x38a9000,0x0,0x28a0000,0x0,0x0,0x28a0000,0x38a9000,0x0,0x2820000,0x0,0x2820000,0x0,0x0,0x2820000,0x0,0x0,0x2820000,0x0,0x0,0x2820000,0x2000000,0x4000000,0x800000,0x4000000,0x1020000,0x0,0x38a9000,0x2000,0x2000,0x4000,0x38a9000,0x0,0x38a9000,0x0,0x2820200,0x2820200,0x4,0x2,0x180,0x180,0x78,0x78,0x0,0x0,0x1,0x1,0x0,0x2820000,0x0,0x2820000,0x0,0x0,};
+ final private JJCalls[] jj_2_rtns = new JJCalls[9];
private boolean jj_rescan = false;
private int jj_gc = 0;
@@ -2776,7 +2997,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 45; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 53; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2787,7 +3008,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 45; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 53; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2797,7 +3018,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 45; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 53; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2808,7 +3029,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 45; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 53; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2817,7 +3038,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 45; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 53; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2827,7 +3048,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 45; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 53; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2942,7 +3163,7 @@
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 45; i++) {
+ for (int i = 0; i < 53; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -2979,7 +3200,7 @@
final private void jj_rescan_token() {
jj_rescan = true;
- for (int i = 0; i < 7; i++) {
+ for (int i = 0; i < 9; i++) {
JJCalls p = jj_2_rtns[i];
do {
if (p.gen > jj_gen) {
@@ -2992,6 +3213,8 @@
case 4: jj_3_5(); break;
case 5: jj_3_6(); break;
case 6: jj_3_7(); break;
+ case 7: jj_3_8(); break;
+ case 8: jj_3_9(); break;
}
}
p = p.next;
1.49 +45 -6
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jj
Index: Parser.jj
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jj,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- Parser.jj 2000/12/27 23:48:59 1.48
+++ Parser.jj 2000/12/28 16:22:28 1.49
@@ -96,7 +96,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
- * @version $Id: Parser.jj,v 1.48 2000/12/27 23:48:59 geirm Exp $
+ * @version $Id: Parser.jj,v 1.49 2000/12/28 16:22:28 geirm Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
{/*@bgen(jjtree)*/
@@ -422,6 +422,7 @@
{
<LBRACKET: "[">
| <RBRACKET: "]">
+| <COMMA:",">
}
<DIRECTIVE>
@@ -430,11 +431,6 @@
<DOUBLEDOT : ".." >
}
-<DIRECTIVE,REFMOD2>
-TOKEN:
-{
- <COMMA:",">
-}
<DIRECTIVE,REFMODIFIER>
TOKEN:
@@ -1174,6 +1170,7 @@
| Word()
| StringLiteral()
| NumberLiteral()
+| LOOKAHEAD(4) IntegerRange()
| ObjectArray()
| True()
| False()
@@ -1371,6 +1368,47 @@
}
/**
+ * supports the [n..m] vector generator for use in
+ * the #foreach() to generate measured ranges w/o
+ * needing explicit support from the app/servlet
+ */
+void IntegerRange() : {/*@bgen(jjtree) IntegerRange */
+ ASTIntegerRange jjtn000 = new ASTIntegerRange(this, JJTINTEGERRANGE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) IntegerRange */
+ try {
+/*@egen*/
+ <LBRACKET> [<WHITESPACE>]
+ ( Reference() | NumberLiteral())
+ [<WHITESPACE>] <DOUBLEDOT> [<WHITESPACE>]
+ (Reference() | NumberLiteral())
+ [<WHITESPACE>] <RBRACKET>/*@bgen(jjtree)*/
+ } catch (Throwable jjte000) {
+ if (jjtc000) {
+ jjtree.clearNodeScope(jjtn000);
+ jjtc000 = false;
+ } else {
+ jjtree.popNode();
+ }
+ if (jjte000 instanceof RuntimeException) {
+ throw (RuntimeException)jjte000;
+ }
+ if (jjte000 instanceof ParseException) {
+ throw (ParseException)jjte000;
+ }
+ throw (Error)jjte000;
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ }
+ }
+/*@egen*/
+}
+
+
+/**
* This method has yet to be fully implemented
* but will allow arbitrarily nested method
* calls
@@ -2273,6 +2311,7 @@
StringLiteral()
| NumberLiteral()
| Reference()
+ | LOOKAHEAD(4) IntegerRange()
| ObjectArray()
| True()
| False()
1.19 +3 -3
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserConstants.java
Index: ParserConstants.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserConstants.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- ParserConstants.java 2000/12/27 23:49:00 1.18
+++ ParserConstants.java 2000/12/28 16:22:30 1.19
@@ -6,8 +6,8 @@
int EOF = 0;
int LBRACKET = 1;
int RBRACKET = 2;
- int DOUBLEDOT = 3;
- int COMMA = 4;
+ int COMMA = 3;
+ int DOUBLEDOT = 4;
int LPAREN = 5;
int RPAREN = 6;
int REFMOD2_RPAREN = 7;
@@ -75,8 +75,8 @@
"<EOF>",
"\"[\"",
"\"]\"",
- "\"..\"",
"\",\"",
+ "\"..\"",
"\"(\"",
"<RPAREN>",
"\")\"",
1.40 +5 -5
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java
Index: ParserTokenManager.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- ParserTokenManager.java 2000/12/27 23:49:00 1.39
+++ ParserTokenManager.java 2000/12/28 16:22:30 1.40
@@ -244,11 +244,11 @@
case 43:
return jjStopAtPos(0, 29);
case 44:
- return jjStopAtPos(0, 4);
+ return jjStopAtPos(0, 3);
case 45:
return jjStartNfaWithStates_0(0, 28, 20);
case 46:
- return jjMoveStringLiteralDfa1_0(0x8L);
+ return jjMoveStringLiteralDfa1_0(0x10L);
case 47:
return jjStopAtPos(0, 31);
case 60:
@@ -296,8 +296,8 @@
return jjStartNfaWithStates_0(1, 14, 5);
break;
case 46:
- if ((active0 & 0x8L) != 0L)
- return jjStopAtPos(1, 3);
+ if ((active0 & 0x10L) != 0L)
+ return jjStopAtPos(1, 4);
break;
case 61:
if ((active0 & 0x1000000000L) != 0L)
@@ -2409,7 +2409,7 @@
case 41:
return jjStopAtPos(0, 7);
case 44:
- return jjStopAtPos(0, 4);
+ return jjStopAtPos(0, 3);
case 91:
return jjStopAtPos(0, 1);
case 93:
1.5 +27 -25
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserTreeConstants.java
Index: ParserTreeConstants.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserTreeConstants.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- ParserTreeConstants.java 2000/11/11 22:47:57 1.4
+++ ParserTreeConstants.java 2000/12/28 16:22:32 1.5
@@ -16,31 +16,32 @@
public int JJTDIRECTIVE = 9;
public int JJTBLOCK = 10;
public int JJTOBJECTARRAY = 11;
- public int JJTMETHOD = 12;
- public int JJTREFERENCE = 13;
- public int JJTTRUE = 14;
- public int JJTFALSE = 15;
- public int JJTTEXT = 16;
- public int JJTIFSTATEMENT = 17;
- public int JJTELSESTATEMENT = 18;
- public int JJTELSEIFSTATEMENT = 19;
- public int JJTSETDIRECTIVE = 20;
- public int JJTEXPRESSION = 21;
- public int JJTASSIGNMENT = 22;
- public int JJTORNODE = 23;
- public int JJTANDNODE = 24;
- public int JJTEQNODE = 25;
- public int JJTNENODE = 26;
- public int JJTLTNODE = 27;
- public int JJTGTNODE = 28;
- public int JJTLENODE = 29;
- public int JJTGENODE = 30;
- public int JJTADDNODE = 31;
- public int JJTSUBTRACTNODE = 32;
- public int JJTMULNODE = 33;
- public int JJTDIVNODE = 34;
- public int JJTMODNODE = 35;
- public int JJTNOTNODE = 36;
+ public int JJTINTEGERRANGE = 12;
+ public int JJTMETHOD = 13;
+ public int JJTREFERENCE = 14;
+ public int JJTTRUE = 15;
+ public int JJTFALSE = 16;
+ public int JJTTEXT = 17;
+ public int JJTIFSTATEMENT = 18;
+ public int JJTELSESTATEMENT = 19;
+ public int JJTELSEIFSTATEMENT = 20;
+ public int JJTSETDIRECTIVE = 21;
+ public int JJTEXPRESSION = 22;
+ public int JJTASSIGNMENT = 23;
+ public int JJTORNODE = 24;
+ public int JJTANDNODE = 25;
+ public int JJTEQNODE = 26;
+ public int JJTNENODE = 27;
+ public int JJTLTNODE = 28;
+ public int JJTGTNODE = 29;
+ public int JJTLENODE = 30;
+ public int JJTGENODE = 31;
+ public int JJTADDNODE = 32;
+ public int JJTSUBTRACTNODE = 33;
+ public int JJTMULNODE = 34;
+ public int JJTDIVNODE = 35;
+ public int JJTMODNODE = 36;
+ public int JJTNOTNODE = 37;
public String[] jjtNodeName = {
@@ -56,6 +57,7 @@
"Directive",
"Block",
"ObjectArray",
+ "IntegerRange",
"Method",
"Reference",
"True",