jvanzyl 00/10/03 10:03:22
Modified: src/java/org/apache/velocity/runtime/parser Parser.java
Parser.jj Parser.jjt ParserConstants.java
ParserTokenManager.java ParserTreeConstants.java
ParserVisitor.java
Added: src/java/org/apache/velocity/runtime/parser
ASTSetDirective.java
Log:
- grammar modified for new directive syntax. place the set
directive back in the core.
Revision Changes Path
1.3 +398 -347
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.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Parser.java 2000/09/30 22:58:14 1.2
+++ Parser.java 2000/10/03 17:03:13 1.3
@@ -16,7 +16,7 @@
* what controls the generation of this class.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: Parser.java,v 1.2 2000/09/30 22:58:14 jvanzyl Exp $
+ * @version $Id: Parser.java,v 1.3 2000/10/03 17:03:13 jvanzyl Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants
{/*@bgen(jjtree)*/
protected JJTParserState jjtree = new JJTParserState();
@@ -100,6 +100,7 @@
case MULTI_LINE_COMMENT:
case INCLUDE_DIRECTIVE:
case IF_DIRECTIVE:
+ case SET_DIRECTIVE:
case STOP_DIRECTIVE:
case NUMBER_LITERAL:
case WORD:
@@ -181,6 +182,9 @@
case MULTI_LINE_COMMENT:
Comment();
break;
+ case SET_DIRECTIVE:
+ SetDirective();
+ break;
case WORD:
Directive();
break;
@@ -272,38 +276,38 @@
}
}
- void DirectiveArgs(int args) throws ParseException {
- /*@bgen(jjtree) DirectiveArgs */
- ASTDirectiveArgs jjtn000 = new ASTDirectiveArgs(this, JJTDIRECTIVEARGS);
- boolean jjtc000 = true;
- jjtree.openNodeScope(jjtn000);
- try {for (int i = 0; i < args; i++)
- {
- DirectiveArg();
- }/*@bgen(jjtree)*/
- } finally {
- if (jjtc000) {
- jjtree.closeNodeScope(jjtn000, true);
- }
- }
+ final public void Word() throws ParseException {
+ /*@bgen(jjtree) Word */
+ ASTWord jjtn000 = new ASTWord(this, JJTWORD);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ try {
+ jj_consume_token(WORD);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ }
+ }
}
final public void DirectiveArg() throws ParseException {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
- case LPAREN:
- case LBRACKET:
- case STRING_LITERAL:
- case TRUE:
- case FALSE:
- case LOGICAL_NOT:
- case NUMBER_LITERAL:
case IDENTIFIER:
case SHORTHAND:
case LCURLY:
- Expression();
+ Reference();
break;
case WORD:
- jj_consume_token(WORD);
+ Word();
+ break;
+ case STRING_LITERAL:
+ StringLiteral();
+ break;
+ case NUMBER_LITERAL:
+ NumberLiteral();
+ break;
+ case LBRACKET:
+ ObjectArray();
break;
default:
jj_la1[3] = jj_gen;
@@ -317,7 +321,6 @@
ASTDirective jjtn000 = new ASTDirective(this, JJTDIRECTIVE);
boolean jjtc000 = true;
jjtree.openNodeScope(jjtn000);Token t;
- int args;
Directive d;
try {
t = jj_consume_token(WORD);
@@ -326,21 +329,36 @@
if (d == null)
{
token_source.SwitchTo(DEFAULT);
+ token_source.inDirective = false;
{if (true) return jjtn000;}
}
-
- args = d.getArgs();
- DirectiveArgs(args);
+ jj_consume_token(LPAREN);
+ label_2:
+ while (true) {
+ DirectiveArg();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ case STRING_LITERAL:
+ case NUMBER_LITERAL:
+ case WORD:
+ case IDENTIFIER:
+ case SHORTHAND:
+ case LCURLY:
+ ;
+ break;
+ default:
+ jj_la1[4] = jj_gen;
+ break label_2;
+ }
+ }
+ jj_consume_token(RPAREN);
if (d.getType() == Directive.LINE)
- {
{if (true) return jjtn000;}
- }
- token_source.SwitchTo(DEFAULT);
ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK);
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
- label_2:
+ label_3:
while (true) {
Statement();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -351,6 +369,7 @@
case MULTI_LINE_COMMENT:
case INCLUDE_DIRECTIVE:
case IF_DIRECTIVE:
+ case SET_DIRECTIVE:
case STOP_DIRECTIVE:
case NUMBER_LITERAL:
case WORD:
@@ -361,8 +380,8 @@
;
break;
default:
- jj_la1[4] = jj_gen;
- break label_2;
+ jj_la1[5] = jj_gen;
+ break label_3;
}
}
} catch (Throwable jjte001) {
@@ -426,22 +445,22 @@
case SHORTHAND:
case LCURLY:
Parameter();
- label_3:
+ label_4:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
- jj_la1[5] = jj_gen;
- break label_3;
+ jj_la1[6] = jj_gen;
+ break label_4;
}
jj_consume_token(COMMA);
Parameter();
}
break;
default:
- jj_la1[6] = jj_gen;
+ jj_la1[7] = jj_gen;
;
}
jj_consume_token(RBRACKET);
@@ -491,7 +510,7 @@
Reference();
break;
default:
- jj_la1[7] = jj_gen;
+ jj_la1[8] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -519,22 +538,22 @@
case SHORTHAND:
case LCURLY:
Parameter();
- label_4:
+ label_5:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case COMMA:
;
break;
default:
- jj_la1[8] = jj_gen;
- break label_4;
+ jj_la1[9] = jj_gen;
+ break label_5;
}
jj_consume_token(COMMA);
Parameter();
}
break;
default:
- jj_la1[9] = jj_gen;
+ jj_la1[10] = jj_gen;
;
}
jj_consume_token(RPAREN);
@@ -570,7 +589,7 @@
jj_consume_token(SHORTHAND);
break;
default:
- jj_la1[10] = jj_gen;
+ jj_la1[11] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -578,16 +597,16 @@
jj_consume_token(LCURLY);
break;
default:
- jj_la1[11] = jj_gen;
+ jj_la1[12] = jj_gen;
;
}
jj_consume_token(IDENTIFIER);
- label_5:
+ label_6:
while (true) {
if (jj_2_1(2)) {
;
} else {
- break label_5;
+ break label_6;
}
jj_consume_token(DOT);
if (jj_2_2(3)) {
@@ -601,12 +620,12 @@
jj_consume_token(RCURLY);
break;
default:
- jj_la1[12] = jj_gen;
+ jj_la1[13] = jj_gen;
;
}
break;
default:
- jj_la1[13] = jj_gen;
+ jj_la1[14] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -689,7 +708,7 @@
t.image = t.image.substring(1);
break;
default:
- jj_la1[14] = jj_gen;
+ jj_la1[15] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -719,7 +738,7 @@
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
- label_6:
+ label_7:
while (true) {
Statement();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -730,6 +749,7 @@
case MULTI_LINE_COMMENT:
case INCLUDE_DIRECTIVE:
case IF_DIRECTIVE:
+ case SET_DIRECTIVE:
case STOP_DIRECTIVE:
case NUMBER_LITERAL:
case WORD:
@@ -740,8 +760,8 @@
;
break;
default:
- jj_la1[15] = jj_gen;
- break label_6;
+ jj_la1[16] = jj_gen;
+ break label_7;
}
}
} catch (Throwable jjte001) {
@@ -765,7 +785,7 @@
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case ELSEIF_DIRECTIVE:
- label_7:
+ label_8:
while (true) {
ElseIfStatement();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -773,13 +793,13 @@
;
break;
default:
- jj_la1[16] = jj_gen;
- break label_7;
+ jj_la1[17] = jj_gen;
+ break label_8;
}
}
break;
default:
- jj_la1[17] = jj_gen;
+ jj_la1[18] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -787,7 +807,7 @@
ElseStatement();
break;
default:
- jj_la1[18] = jj_gen;
+ jj_la1[19] = jj_gen;
;
}
jj_consume_token(END);
@@ -823,7 +843,7 @@
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
- label_8:
+ label_9:
while (true) {
Statement();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -834,6 +854,7 @@
case MULTI_LINE_COMMENT:
case INCLUDE_DIRECTIVE:
case IF_DIRECTIVE:
+ case SET_DIRECTIVE:
case STOP_DIRECTIVE:
case NUMBER_LITERAL:
case WORD:
@@ -844,8 +865,8 @@
;
break;
default:
- jj_la1[19] = jj_gen;
- break label_8;
+ jj_la1[20] = jj_gen;
+ break label_9;
}
}
} catch (Throwable jjte001) {
@@ -902,7 +923,7 @@
boolean jjtc001 = true;
jjtree.openNodeScope(jjtn001);
try {
- label_9:
+ label_10:
while (true) {
Statement();
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -913,6 +934,7 @@
case MULTI_LINE_COMMENT:
case INCLUDE_DIRECTIVE:
case IF_DIRECTIVE:
+ case SET_DIRECTIVE:
case STOP_DIRECTIVE:
case NUMBER_LITERAL:
case WORD:
@@ -923,8 +945,8 @@
;
break;
default:
- jj_la1[20] = jj_gen;
- break label_9;
+ jj_la1[21] = jj_gen;
+ break label_10;
}
}
} catch (Throwable jjte001) {
@@ -967,6 +989,35 @@
}
}
+ final public void SetDirective() throws ParseException {
+ /*@bgen(jjtree) SetDirective */
+ ASTSetDirective jjtn000 = new ASTSetDirective(this, JJTSETDIRECTIVE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ try {
+ jj_consume_token(SET_DIRECTIVE);
+ Expression();
+ } 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);
+ }
+ }
+ }
+
/**
* This method corresponds to an #include
* directive in a Velocity template. The
@@ -1020,7 +1071,7 @@
ConditionalOrExpression();
break;
default:
- jj_la1[21] = jj_gen;
+ jj_la1[22] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1078,15 +1129,15 @@
final public void ConditionalOrExpression() throws ParseException {
ConditionalAndExpression();
- label_10:
+ label_11:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LOGICAL_OR:
;
break;
default:
- jj_la1[22] = jj_gen;
- break label_10;
+ jj_la1[23] = jj_gen;
+ break label_11;
}
jj_consume_token(LOGICAL_OR);
ASTOrNode jjtn001 = new ASTOrNode(this, JJTORNODE);
@@ -1118,15 +1169,15 @@
final public void ConditionalAndExpression() throws ParseException {
EqualityExpression();
- label_11:
+ label_12:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LOGICAL_AND:
;
break;
default:
- jj_la1[23] = jj_gen;
- break label_11;
+ jj_la1[24] = jj_gen;
+ break label_12;
}
jj_consume_token(LOGICAL_AND);
ASTAndNode jjtn001 = new ASTAndNode(this, JJTANDNODE);
@@ -1158,7 +1209,7 @@
final public void EqualityExpression() throws ParseException {
RelationalExpression();
- label_12:
+ label_13:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LOGICAL_EQUALS:
@@ -1166,8 +1217,8 @@
;
break;
default:
- jj_la1[24] = jj_gen;
- break label_12;
+ jj_la1[25] = jj_gen;
+ break label_13;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LOGICAL_EQUALS:
@@ -1225,7 +1276,7 @@
}
break;
default:
- jj_la1[25] = jj_gen;
+ jj_la1[26] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1234,7 +1285,7 @@
final public void RelationalExpression() throws ParseException {
AdditiveExpression();
- label_13:
+ label_14:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LOGICAL_LT:
@@ -1244,8 +1295,8 @@
;
break;
default:
- jj_la1[26] = jj_gen;
- break label_13;
+ jj_la1[27] = jj_gen;
+ break label_14;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case LOGICAL_LT:
@@ -1357,7 +1408,7 @@
}
break;
default:
- jj_la1[27] = jj_gen;
+ jj_la1[28] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1366,7 +1417,7 @@
final public void AdditiveExpression() throws ParseException {
MultiplicativeExpression();
- label_14:
+ label_15:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MINUS:
@@ -1374,8 +1425,8 @@
;
break;
default:
- jj_la1[28] = jj_gen;
- break label_14;
+ jj_la1[29] = jj_gen;
+ break label_15;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case PLUS:
@@ -1433,7 +1484,7 @@
}
break;
default:
- jj_la1[29] = jj_gen;
+ jj_la1[30] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1442,7 +1493,7 @@
final public void MultiplicativeExpression() throws ParseException {
UnaryExpression();
- label_15:
+ label_16:
while (true) {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MULTIPLY:
@@ -1451,8 +1502,8 @@
;
break;
default:
- jj_la1[30] = jj_gen;
- break label_15;
+ jj_la1[31] = jj_gen;
+ break label_16;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case MULTIPLY:
@@ -1537,7 +1588,7 @@
}
break;
default:
- jj_la1[31] = jj_gen;
+ jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1585,7 +1636,7 @@
PrimaryExpression();
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[33] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1619,7 +1670,7 @@
jj_consume_token(RPAREN);
break;
default:
- jj_la1[33] = jj_gen;
+ jj_la1[34] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1646,54 +1697,6 @@
return retval;
}
- final private boolean jj_3R_34() {
- if (jj_scan_token(FALSE)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3_3() {
- if (jj_3R_18()) 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_48() {
- if (jj_3R_50()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3R_51()) { jj_scanpos = xsp; break; }
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- }
- return false;
- }
-
- final private boolean jj_3R_19() {
- if (jj_scan_token(IDENTIFIER)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_33() {
- if (jj_scan_token(TRUE)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_47() {
- if (jj_3R_18()) 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_35()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
final private boolean jj_3_1() {
if (jj_scan_token(DOT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -1701,54 +1704,37 @@
xsp = jj_scanpos;
if (jj_3_2()) {
jj_scanpos = xsp;
- if (jj_3R_16()) return true;
+ if (jj_3R_17()) 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_45() {
- if (jj_3R_48()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
- final private boolean jj_3R_42() {
+ final private boolean jj_3R_43() {
if (jj_scan_token(LCURLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
-
- final private boolean jj_3R_35() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_44()) {
- jj_scanpos = xsp;
- 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_44() {
- if (jj_3R_47()) return true;
+ final private boolean jj_3R_42() {
+ if (jj_scan_token(SHORTHAND)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_41() {
- if (jj_scan_token(SHORTHAND)) return true;
+ final private boolean jj_3R_30() {
+ 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_31() {
+ final private boolean jj_3R_32() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_41()) jj_scanpos = xsp;
+ if (jj_3R_42()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
xsp = jj_scanpos;
- if (jj_3R_42()) jj_scanpos = xsp;
+ if (jj_3R_43()) jj_scanpos = xsp;
else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_scan_token(IDENTIFIER)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -1760,127 +1746,89 @@
return false;
}
- final private boolean jj_3R_46() {
+ final private boolean jj_3R_47() {
if (jj_scan_token(COMMA)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_28()) return true;
+ if (jj_3R_29()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_17() {
- if (jj_3R_19()) return true;
+ final private boolean jj_3R_31() {
+ 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_18() {
+ if (jj_3R_20()) 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_20()) jj_scanpos = xsp;
+ if (jj_3R_21()) jj_scanpos = xsp;
else 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_29() {
- if (jj_scan_token(STRING_LITERAL)) return true;
+ final private boolean jj_3R_28() {
+ if (jj_scan_token(LPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_30() {
- if (jj_scan_token(NUMBER_LITERAL)) return true;
+ if (jj_3R_36()) 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_40() {
- if (jj_3R_31()) return true;
+ final private boolean jj_3R_27() {
+ if (jj_3R_35()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_39() {
+ final private boolean jj_3R_26() {
if (jj_3R_34()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_43() {
- if (jj_3R_28()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3R_46()) { jj_scanpos = xsp; break; }
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- }
- return false;
- }
-
- final private boolean jj_3R_27() {
- if (jj_scan_token(LPAREN)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_35()) 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_38() {
+ final private boolean jj_3R_25() {
if (jj_3R_33()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
-
- final private boolean jj_3R_26() {
- if (jj_3R_34()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
- final private boolean jj_3R_37() {
+ final private boolean jj_3R_41() {
if (jj_3R_32()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_25() {
- if (jj_3R_33()) return true;
+ final private boolean jj_3R_24() {
+ if (jj_3R_32()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_28() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_36()) {
- jj_scanpos = xsp;
- if (jj_3R_37()) {
- jj_scanpos = xsp;
- if (jj_3R_38()) {
- jj_scanpos = xsp;
- if (jj_3R_39()) {
- jj_scanpos = xsp;
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_40() {
+ 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;
- } 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_3R_36() {
+ final private boolean jj_3R_44() {
if (jj_3R_29()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_24() {
- if (jj_3R_32()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_47()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
return false;
}
@@ -1890,23 +1838,21 @@
return false;
}
- final private boolean jj_3R_22() {
- if (jj_3R_30()) return true;
+ final private boolean jj_3R_39() {
+ if (jj_3R_34()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_21() {
- if (jj_3R_29()) return true;
+ final private boolean jj_3R_22() {
+ if (jj_3R_30()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_18() {
+ final private boolean jj_3R_19() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_21()) {
- jj_scanpos = xsp;
if (jj_3R_22()) {
jj_scanpos = xsp;
if (jj_3R_23()) {
@@ -1917,7 +1863,9 @@
jj_scanpos = xsp;
if (jj_3R_26()) {
jj_scanpos = xsp;
- if (jj_3R_27()) return true;
+ if (jj_3R_27()) {
+ jj_scanpos = xsp;
+ if (jj_3R_28()) 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;
@@ -1928,190 +1876,212 @@
return false;
}
- final private boolean jj_3R_72() {
- if (jj_3R_18()) return true;
+ final private boolean jj_3R_38() {
+ if (jj_3R_33()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_75() {
+ final private boolean jj_3R_29() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_37()) {
+ jj_scanpos = xsp;
+ if (jj_3R_38()) {
+ jj_scanpos = xsp;
+ if (jj_3R_39()) {
+ jj_scanpos = xsp;
+ if (jj_3R_40()) {
+ jj_scanpos = xsp;
+ if (jj_3R_41()) 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;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_37() {
+ if (jj_3R_30()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_73() {
+ if (jj_3R_19()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_76() {
if (jj_scan_token(MODULUS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_67()) return true;
+ if (jj_3R_68()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_71() {
+ final private boolean jj_3R_72() {
if (jj_scan_token(LOGICAL_NOT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_67()) return true;
+ if (jj_3R_68()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_67() {
+ final private boolean jj_3R_68() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_71()) {
+ if (jj_3R_72()) {
jj_scanpos = xsp;
- if (jj_3R_72()) return true;
+ if (jj_3R_73()) 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_74() {
+ final private boolean jj_3R_75() {
if (jj_scan_token(DIVIDE)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_67()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_32() {
- 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_43()) jj_scanpos = xsp;
- else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_scan_token(RBRACKET)) return true;
+ if (jj_3R_68()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_73() {
+ final private boolean jj_3R_74() {
if (jj_scan_token(MULTIPLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_67()) return true;
+ if (jj_3R_68()) 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_69() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_73()) {
- jj_scanpos = xsp;
if (jj_3R_74()) {
jj_scanpos = xsp;
- if (jj_3R_75()) return true;
+ 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;
return false;
}
- final private boolean jj_3R_49() {
+ final private boolean jj_3R_33() {
+ 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_44()) 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_50() {
if (jj_scan_token(RCURLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_70() {
+ final private boolean jj_3R_71() {
if (jj_scan_token(MINUS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_61()) return true;
+ if (jj_3R_62()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_61() {
- if (jj_3R_67()) return true;
+ final private boolean jj_3R_62() {
+ if (jj_3R_68()) 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_69()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_69() {
+ final private boolean jj_3R_70() {
if (jj_scan_token(PLUS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_61()) return true;
+ if (jj_3R_62()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_62() {
+ final private boolean jj_3R_63() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_69()) {
+ if (jj_3R_70()) {
jj_scanpos = xsp;
- if (jj_3R_70()) return true;
+ if (jj_3R_71()) 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_16() {
- if (jj_3R_19()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_49()) jj_scanpos = xsp;
- else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_66() {
+ final private boolean jj_3R_67() {
if (jj_scan_token(LOGICAL_GE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_57()) return true;
+ if (jj_3R_58()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_57() {
- if (jj_3R_61()) return true;
+ final private boolean jj_3R_58() {
+ if (jj_3R_62()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_62()) { jj_scanpos = xsp; break; }
+ if (jj_3R_63()) { 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_66() {
if (jj_scan_token(LOGICAL_LE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_57()) return true;
+ if (jj_3R_58()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_64() {
+ final private boolean jj_3R_65() {
if (jj_scan_token(LOGICAL_GT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_57()) return true;
+ if (jj_3R_58()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_63() {
+ final private boolean jj_3R_64() {
if (jj_scan_token(LOGICAL_LT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_57()) return true;
+ if (jj_3R_58()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_58() {
+ final private boolean jj_3R_59() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_63()) {
- jj_scanpos = xsp;
if (jj_3R_64()) {
jj_scanpos = xsp;
if (jj_3R_65()) {
+ jj_scanpos = xsp;
+ if (jj_3R_66()) {
jj_scanpos = xsp;
- if (jj_3R_66()) return true;
+ if (jj_3R_67()) 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;
@@ -2119,107 +2089,188 @@
return false;
}
- final private boolean jj_3R_60() {
+ final private boolean jj_3R_17() {
+ if (jj_3R_20()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_50()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_61() {
if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_55()) return true;
+ if (jj_3R_56()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_55() {
- if (jj_3R_57()) return true;
+ final private boolean jj_3R_56() {
+ if (jj_3R_58()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_58()) { jj_scanpos = xsp; break; }
+ if (jj_3R_59()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_59() {
+ final private boolean jj_3R_60() {
if (jj_scan_token(LOGICAL_EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_55()) return true;
+ if (jj_3R_56()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_56() {
+ final private boolean jj_3R_57() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_59()) {
+ if (jj_3R_60()) {
jj_scanpos = xsp;
- if (jj_3R_60()) return true;
+ if (jj_3R_61()) 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_54() {
+ final private boolean jj_3R_55() {
if (jj_scan_token(COMMA)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_28()) return true;
+ if (jj_3R_29()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_52() {
- if (jj_3R_55()) return true;
+ final private boolean jj_3R_53() {
+ if (jj_3R_56()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_56()) { jj_scanpos = xsp; break; }
+ if (jj_3R_57()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
+ final private boolean jj_3R_54() {
+ if (jj_scan_token(LOGICAL_AND)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_53()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
final private boolean jj_3_2() {
- if (jj_3R_17()) return true;
+ if (jj_3R_18()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_53() {
- if (jj_scan_token(LOGICAL_AND)) return true;
+ final private boolean jj_3R_51() {
+ if (jj_3R_53()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_52()) return true;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_54()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_52() {
+ if (jj_scan_token(LOGICAL_OR)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_51()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_50() {
- if (jj_3R_52()) return true;
+ final private boolean jj_3_3() {
+ if (jj_3R_19()) 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_21() {
+ if (jj_3R_29()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_53()) { jj_scanpos = xsp; break; }
+ if (jj_3R_55()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_20() {
- if (jj_3R_28()) return true;
+ final private boolean jj_3R_49() {
+ if (jj_3R_51()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_54()) { jj_scanpos = xsp; break; }
+ if (jj_3R_52()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_51() {
- if (jj_scan_token(LOGICAL_OR)) return true;
+ final private boolean jj_3R_20() {
+ if (jj_scan_token(IDENTIFIER)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_50()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_35() {
+ if (jj_scan_token(FALSE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_48() {
+ if (jj_3R_19()) 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_36()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_34() {
+ if (jj_scan_token(TRUE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_46() {
+ if (jj_3R_49()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_36() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_45()) {
+ jj_scanpos = xsp;
+ if (jj_3R_46()) 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_45() {
+ if (jj_3R_48()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
@@ -2233,9 +2284,9 @@
public boolean lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
- final private int[] jj_la1 = new int[34];
- final private int[] jj_la1_0 =
{0x70006,0x70006,0x70000,0x6a8,0x70006,0x100,0x6a0,0x6a0,0x100,0x6a0,0x0,0x0,0x0,0x0,0x6,0x70006,0x0,0x0,0x0,0x70006,0x70006,0x6a8,0x20000000,0x10000000,0x0,0x0,0xc0000000,0xc0000000,0x1800000,0x1800000,0xe000000,0xe000000,0x6a8,0x6a8,};
- final private int[] jj_la1_1 =
{0x78a980,0x78a980,0x0,0x68a010,0x78a980,0x0,0x680000,0x680000,0x0,0x680000,0x200000,0x400000,0x800000,0x80000,0x102000,0x78a980,0x200,0x200,0x400,0x78a980,0x78a980,0x682010,0x0,0x0,0xc,0xc,0x3,0x3,0x0,0x0,0x0,0x0,0x682010,0x682000,};
+ final private int[] jj_la1 = new int[35];
+ final private int[] jj_la1_0 =
{0x70006,0x70006,0x70000,0xa0,0xa0,0x70006,0x100,0x6a0,0x6a0,0x100,0x6a0,0x0,0x0,0x0,0x0,0x6,0x70006,0x0,0x0,0x0,0x70006,0x70006,0x6a8,0x20000000,0x10000000,0x0,0x0,0xc0000000,0xc0000000,0x1800000,0x1800000,0xe000000,0xe000000,0x6a8,0x6a8,};
+ final private int[] jj_la1_1 =
{0xf15980,0xf15980,0x0,0xd14000,0xd14000,0xf15980,0x0,0xd00000,0xd00000,0x0,0xd00000,0x400000,0x800000,0x1000000,0x100000,0x204000,0xf15980,0x200,0x200,0x400,0xf15980,0xf15980,0xd04010,0x0,0x0,0xc,0xc,0x3,0x3,0x0,0x0,0x0,0x0,0xd04010,0xd04000,};
final private JJCalls[] jj_2_rtns = new JJCalls[3];
private boolean jj_rescan = false;
private int jj_gc = 0;
@@ -2246,7 +2297,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2257,7 +2308,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2267,7 +2318,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2278,7 +2329,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2287,7 +2338,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2297,7 +2348,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 34; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 35; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -2404,15 +2455,15 @@
final public ParseException generateParseException() {
jj_expentries.removeAllElements();
- boolean[] la1tokens = new boolean[57];
- for (int i = 0; i < 57; i++) {
+ boolean[] la1tokens = new boolean[58];
+ for (int i = 0; i < 58; i++) {
la1tokens[i] = false;
}
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 34; i++) {
+ for (int i = 0; i < 35; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
@@ -2424,7 +2475,7 @@
}
}
}
- for (int i = 0; i < 57; i++) {
+ for (int i = 0; i < 58; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
1.3 +81 -41
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.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Parser.jj 2000/09/30 22:58:14 1.2
+++ Parser.jj 2000/10/03 17:03:14 1.3
@@ -75,7 +75,6 @@
DEBUG_PARSER=false;
DEBUG_TOKEN_MANAGER=false;
-
}
PARSER_BEGIN(Parser)
@@ -97,7 +96,7 @@
* what controls the generation of this class.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: Parser.jj,v 1.2 2000/09/30 22:58:14 jvanzyl Exp $
+ * @version $Id: Parser.jj,v 1.3 2000/10/03 17:03:14 jvanzyl Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
{/*@bgen(jjtree)*/
@@ -188,8 +187,9 @@
private int rparen = 0;
private boolean inReference;
- private boolean inDirective;
+ public boolean inDirective;
private boolean inComment;
+ private boolean inSet;
Stack streams = new Stack();
Stack states = new Stack();
@@ -279,12 +279,18 @@
{
<LPAREN: "(" >
{
- lparen++;
+ lparen++;
}
| <RPAREN: ")" >
{
rparen++;
+
+ if (lparen == rparen)
+ {
+ SwitchTo(DEFAULT);
+ inDirective = false;
+ }
}
| <LBRACKET: "[">
@@ -298,7 +304,7 @@
pushFile(matchedToken.image);
}
incMode = false;
- }
+ }
| <COMMA: ",">
| <TRUE: "true">
@@ -385,14 +391,22 @@
{
" "
| "\t"
+//| "\n"
+//| "\r"
}
-<DIRECTIVE,REFERENCE>
+<DIRECTIVE>
SPECIAL_TOKEN :
{
- <NEWLINE: ("\r\n" | "\r" | "\n") >
- { inDirective = false; }
- : DEFAULT
+ <NEWLINE: "\n" | "\r" | "\r\n" >
+ {
+ if (inSet)
+ {
+ SwitchTo(DEFAULT);
+ inSet = false;
+ inDirective = false;
+ }
+ }
}
<DIRECTIVE>
@@ -418,8 +432,6 @@
<DIRECTIVE>
TOKEN :
{
-// <TRUE: "true">
-//| <FALSE: "false">
<END: "end">
{
inDirective = false;
@@ -436,7 +448,8 @@
| <ELSE_DIRECTIVE: "else">
: DEFAULT
-//| <SET_DIRECTIVE: "set" >
+| <SET_DIRECTIVE: "set" >
+ { inSet = true; }
| <STOP_DIRECTIVE: "stop">
{
@@ -558,6 +571,7 @@
| StopStatement()
| Reference()
| Comment()
+| SetDirective()
| Directive()
}
@@ -642,31 +656,31 @@
/*@egen*/
}
-JAVACODE
-void DirectiveArgs(int args)
-{/*@bgen(jjtree) DirectiveArgs */
- ASTDirectiveArgs jjtn000 = new ASTDirectiveArgs(this, JJTDIRECTIVEARGS);
- boolean jjtc000 = true;
- jjtree.openNodeScope(jjtn000);
- try {
+void Word() : {/*@bgen(jjtree) Word */
+ ASTWord jjtn000 = new ASTWord(this, JJTWORD);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) Word */
+ try {
/*@egen*/
- for (int i = 0; i < args; i++)
- {
- DirectiveArg();
- }/*@bgen(jjtree)*/
- } finally {
- if (jjtc000) {
- jjtree.closeNodeScope(jjtn000, true);
- }
- }
-/*@egen*/
-}
+ <WORD>/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ }
+ }
+/*@egen*/
+}
void DirectiveArg() : {}
{
- Expression()
-| <WORD>
-}
+ Reference()
+| Word()
+| StringLiteral()
+| NumberLiteral()
+| ObjectArray()
+}
SimpleNode Directive() :
{/*@bgen(jjtree) Directive */
@@ -675,7 +689,6 @@
jjtree.openNodeScope(jjtn000);
/*@egen*/
Token t;
- int args;
Directive d;
}
{/*@bgen(jjtree) Directive */
@@ -688,19 +701,15 @@
if (d == null)
{
token_source.SwitchTo(DEFAULT);
+ token_source.inDirective = false;
return jjtn000;
}
-
- args = d.getArgs();
}
- DirectiveArgs(args)
+ <LPAREN> (DirectiveArg())+ <RPAREN>
{
if (d.getType() == Directive.LINE)
- {
return jjtn000;
- }
- token_source.SwitchTo(DEFAULT);
}/*@bgen(jjtree) Block */
{
ASTBlock jjtn001 = new ASTBlock(this, JJTBLOCK);
@@ -759,7 +768,7 @@
jjtree.closeNodeScope(jjtn000, true);
}
}
-/*@egen*/
+/*@egen*/
}
void ObjectArray() : {/*@bgen(jjtree) ObjectArray */
@@ -1135,6 +1144,37 @@
}
/*@egen*/
}
+
+void SetDirective() : {/*@bgen(jjtree) SetDirective */
+ ASTSetDirective jjtn000 = new ASTSetDirective(this, JJTSETDIRECTIVE);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) SetDirective */
+ try {
+/*@egen*/
+ <SET_DIRECTIVE> Expression()/*@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 corresponds to an #include
1.3 +43 -30
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jjt
Index: Parser.jjt
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jjt,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- Parser.jjt 2000/09/30 22:58:14 1.2
+++ Parser.jjt 2000/10/03 17:03:15 1.3
@@ -99,7 +99,6 @@
DEBUG_PARSER=false;
DEBUG_TOKEN_MANAGER=false;
-
}
PARSER_BEGIN(Parser)
@@ -121,7 +120,7 @@
* what controls the generation of this class.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
- * @version $Id: Parser.jjt,v 1.2 2000/09/30 22:58:14 jvanzyl Exp $
+ * @version $Id: Parser.jjt,v 1.3 2000/10/03 17:03:15 jvanzyl Exp $
*/
public class Parser
{
@@ -209,8 +208,9 @@
private int rparen = 0;
private boolean inReference;
- private boolean inDirective;
+ public boolean inDirective;
private boolean inComment;
+ private boolean inSet;
Stack streams = new Stack();
Stack states = new Stack();
@@ -300,12 +300,18 @@
{
<LPAREN: "(" >
{
- lparen++;
+ lparen++;
}
| <RPAREN: ")" >
{
rparen++;
+
+ if (lparen == rparen)
+ {
+ SwitchTo(DEFAULT);
+ inDirective = false;
+ }
}
| <LBRACKET: "[">
@@ -319,7 +325,7 @@
pushFile(matchedToken.image);
}
incMode = false;
- }
+ }
| <COMMA: ",">
| <TRUE: "true">
@@ -406,14 +412,22 @@
{
" "
| "\t"
+//| "\n"
+//| "\r"
}
-<DIRECTIVE,REFERENCE>
+<DIRECTIVE>
SPECIAL_TOKEN :
{
- <NEWLINE: ("\r\n" | "\r" | "\n") >
- { inDirective = false; }
- : DEFAULT
+ <NEWLINE: "\n" | "\r" | "\r\n" >
+ {
+ if (inSet)
+ {
+ SwitchTo(DEFAULT);
+ inSet = false;
+ inDirective = false;
+ }
+ }
}
<DIRECTIVE>
@@ -439,8 +453,6 @@
<DIRECTIVE>
TOKEN :
{
-// <TRUE: "true">
-//| <FALSE: "false">
<END: "end">
{
inDirective = false;
@@ -457,7 +469,8 @@
| <ELSE_DIRECTIVE: "else">
: DEFAULT
-//| <SET_DIRECTIVE: "set" >
+| <SET_DIRECTIVE: "set" >
+ { inSet = true; }
| <STOP_DIRECTIVE: "stop">
{
@@ -548,6 +561,7 @@
| StopStatement()
| Reference()
| Comment()
+| SetDirective()
| Directive()
}
@@ -584,25 +598,23 @@
<IDENTIFIER>
}
-JAVACODE
-void DirectiveArgs(int args)
+void Word() : {}
{
- for (int i = 0; i < args; i++)
- {
- DirectiveArg();
- }
-}
+ <WORD>
+}
void DirectiveArg() #void : {}
{
- Expression()
-| <WORD>
-}
+ Reference()
+| Word()
+| StringLiteral()
+| NumberLiteral()
+| ObjectArray()
+}
SimpleNode Directive() :
{
Token t;
- int args;
Directive d;
}
{
@@ -613,26 +625,22 @@
if (d == null)
{
token_source.SwitchTo(DEFAULT);
+ token_source.inDirective = false;
return jjtThis;
}
-
- args = d.getArgs();
}
- DirectiveArgs(args)
+ <LPAREN> (DirectiveArg())+ <RPAREN>
{
if (d.getType() == Directive.LINE)
- {
return jjtThis;
- }
- token_source.SwitchTo(DEFAULT);
}
( Statement() )+ #Block
<END>
{
return jjtThis;
- }
+ }
}
void ObjectArray() : {}
@@ -730,6 +738,11 @@
<LPAREN> Expression() <RPAREN>
( Statement() )+ #Block
}
+
+void SetDirective() : {}
+{
+ <SET_DIRECTIVE> Expression()
+}
/**
* This method corresponds to an #include
1.2 +16 -14
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ParserConstants.java 2000/09/30 17:04:28 1.1
+++ ParserConstants.java 2000/10/03 17:03:15 1.2
@@ -40,20 +40,21 @@
int IF_DIRECTIVE = 40;
int ELSEIF_DIRECTIVE = 41;
int ELSE_DIRECTIVE = 42;
- int STOP_DIRECTIVE = 43;
- int DIGIT = 44;
- int NUMBER_LITERAL = 45;
- int LETTER = 46;
- int WORD = 47;
- int ALPHA_CHAR = 48;
- int ALPHANUM_CHAR = 49;
- int IDENTIFIER_CHAR = 50;
- int IDENTIFIER = 51;
- int DOT = 52;
- int SHORTHAND = 53;
- int LCURLY = 54;
- int RCURLY = 55;
- int REFERENCE_TERMINATOR = 56;
+ int SET_DIRECTIVE = 43;
+ int STOP_DIRECTIVE = 44;
+ int DIGIT = 45;
+ int NUMBER_LITERAL = 46;
+ int LETTER = 47;
+ int WORD = 48;
+ int ALPHA_CHAR = 49;
+ int ALPHANUM_CHAR = 50;
+ int IDENTIFIER_CHAR = 51;
+ int IDENTIFIER = 52;
+ int DOT = 53;
+ int SHORTHAND = 54;
+ int LCURLY = 55;
+ int RCURLY = 56;
+ int REFERENCE_TERMINATOR = 57;
int DEFAULT = 0;
int REFERENCE = 1;
@@ -106,6 +107,7 @@
"\"if\"",
"\"elseif\"",
"\"else\"",
+ "\"set\"",
"\"stop\"",
"<DIGIT>",
"<NUMBER_LITERAL>",
1.2 +96 -90
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ParserTokenManager.java 2000/09/30 17:04:27 1.1
+++ ParserTokenManager.java 2000/10/03 17:03:16 1.2
@@ -13,8 +13,9 @@
private int rparen = 0;
private boolean inReference;
- private boolean inDirective;
+ public boolean inDirective;
private boolean inComment;
+ private boolean inSet;
Stack streams = new Stack();
Stack states = new Stack();
@@ -630,32 +631,32 @@
switch (pos)
{
case 0:
- if ((active0 & 0xfc000000600L) != 0L)
+ if ((active0 & 0x1fc000000600L) != 0L)
{
- jjmatchedKind = 47;
+ jjmatchedKind = 48;
return 11;
}
if ((active0 & 0xd000L) != 0L)
return 5;
return -1;
case 1:
- if ((active0 & 0x10000000000L) != 0L)
- return 11;
- if ((active0 & 0x4000L) != 0L)
- return 3;
- if ((active0 & 0xec000000600L) != 0L)
+ if ((active0 & 0x1ec000000600L) != 0L)
{
- jjmatchedKind = 47;
+ jjmatchedKind = 48;
jjmatchedPos = 1;
return 11;
}
+ if ((active0 & 0x10000000000L) != 0L)
+ return 11;
+ if ((active0 & 0x4000L) != 0L)
+ return 3;
return -1;
case 2:
- if ((active0 & 0x4000000000L) != 0L)
+ if ((active0 & 0x84000000000L) != 0L)
return 11;
- if ((active0 & 0xe8000000600L) != 0L)
+ if ((active0 & 0x168000000600L) != 0L)
{
- jjmatchedKind = 47;
+ jjmatchedKind = 48;
jjmatchedPos = 2;
return 11;
}
@@ -665,18 +666,18 @@
{
if (jjmatchedPos != 3)
{
- jjmatchedKind = 47;
+ jjmatchedKind = 48;
jjmatchedPos = 3;
}
return 11;
}
- if ((active0 & 0xe0000000200L) != 0L)
+ if ((active0 & 0x160000000200L) != 0L)
return 11;
return -1;
case 4:
if ((active0 & 0x28000000000L) != 0L)
{
- jjmatchedKind = 47;
+ jjmatchedKind = 48;
jjmatchedPos = 4;
return 11;
}
@@ -688,7 +689,7 @@
return 11;
if ((active0 & 0x8000000000L) != 0L)
{
- jjmatchedKind = 47;
+ jjmatchedKind = 48;
jjmatchedPos = 5;
return 11;
}
@@ -759,7 +760,7 @@
case 105:
return jjMoveStringLiteralDfa1_2(0x18000000000L);
case 115:
- return jjMoveStringLiteralDfa1_2(0x80000000000L);
+ return jjMoveStringLiteralDfa1_2(0x180000000000L);
case 116:
return jjMoveStringLiteralDfa1_2(0x200L);
case 124:
@@ -801,6 +802,8 @@
break;
case 97:
return jjMoveStringLiteralDfa2_2(active0, 0x400L);
+ case 101:
+ return jjMoveStringLiteralDfa2_2(active0, 0x80000000000L);
case 102:
if ((active0 & 0x10000000000L) != 0L)
return jjStartNfaWithStates_2(1, 40, 11);
@@ -812,7 +815,7 @@
case 114:
return jjMoveStringLiteralDfa2_2(active0, 0x200L);
case 116:
- return jjMoveStringLiteralDfa2_2(active0, 0x80000000000L);
+ return jjMoveStringLiteralDfa2_2(active0, 0x100000000000L);
case 124:
if ((active0 & 0x20000000L) != 0L)
return jjStopAtPos(1, 29);
@@ -842,9 +845,13 @@
case 108:
return jjMoveStringLiteralDfa3_2(active0, 0x400L);
case 111:
- return jjMoveStringLiteralDfa3_2(active0, 0x80000000000L);
+ return jjMoveStringLiteralDfa3_2(active0, 0x100000000000L);
case 115:
return jjMoveStringLiteralDfa3_2(active0, 0x60000000000L);
+ case 116:
+ if ((active0 & 0x80000000000L) != 0L)
+ return jjStartNfaWithStates_2(2, 43, 11);
+ break;
case 117:
return jjMoveStringLiteralDfa3_2(active0, 0x200L);
default :
@@ -875,8 +882,8 @@
case 108:
return jjMoveStringLiteralDfa4_2(active0, 0x8000000000L);
case 112:
- if ((active0 & 0x80000000000L) != 0L)
- return jjStartNfaWithStates_2(3, 43, 11);
+ if ((active0 & 0x100000000000L) != 0L)
+ return jjStartNfaWithStates_2(3, 44, 11);
break;
case 115:
return jjMoveStringLiteralDfa4_2(active0, 0x400L);
@@ -973,8 +980,8 @@
case 0:
if ((0x3ff000000000000L & l) != 0L)
{
- if (kind > 45)
- kind = 45;
+ if (kind > 46)
+ kind = 46;
jjCheckNAdd(10);
}
else if ((0x2400L & l) != 0L)
@@ -987,7 +994,7 @@
else if (curChar == 34)
jjCheckNAddTwoStates(1, 2);
if (curChar == 13)
- jjstateSet[jjnewStateCnt++] = 7;
+ jjstateSet[jjnewStateCnt++] = 8;
break;
case 1:
if ((0xfffffffbffffdbffL & l) != 0L)
@@ -1014,22 +1021,22 @@
jjstateSet[jjnewStateCnt++] = 5;
break;
case 7:
- if (curChar == 10 && kind > 22)
+ if ((0x2400L & l) != 0L && kind > 22)
kind = 22;
break;
case 8:
- if (curChar == 13)
- jjstateSet[jjnewStateCnt++] = 7;
+ if (curChar == 10 && kind > 22)
+ kind = 22;
break;
case 9:
- if ((0x2400L & l) != 0L && kind > 22)
- kind = 22;
+ if (curChar == 13)
+ jjstateSet[jjnewStateCnt++] = 8;
break;
case 10:
if ((0x3ff000000000000L & l) == 0L)
break;
- if (kind > 45)
- kind = 45;
+ if (kind > 46)
+ kind = 46;
jjCheckNAdd(10);
break;
default : break;
@@ -1047,8 +1054,8 @@
case 11:
if ((0x7fffffe00000000L & l) == 0L)
break;
- if (kind > 47)
- kind = 47;
+ if (kind > 48)
+ kind = 48;
jjCheckNAdd(11);
break;
case 1:
@@ -1247,8 +1254,8 @@
case 0:
if ((active0 & 0x600L) != 0L)
{
- jjmatchedKind = 51;
- return 11;
+ jjmatchedKind = 52;
+ return 8;
}
if ((active0 & 0xd000L) != 0L)
return 5;
@@ -1256,9 +1263,9 @@
case 1:
if ((active0 & 0x600L) != 0L)
{
- jjmatchedKind = 51;
+ jjmatchedKind = 52;
jjmatchedPos = 1;
- return 11;
+ return 8;
}
if ((active0 & 0x4000L) != 0L)
return 3;
@@ -1266,20 +1273,20 @@
case 2:
if ((active0 & 0x600L) != 0L)
{
- jjmatchedKind = 51;
+ jjmatchedKind = 52;
jjmatchedPos = 2;
- return 11;
+ return 8;
}
return -1;
case 3:
if ((active0 & 0x400L) != 0L)
{
- jjmatchedKind = 51;
+ jjmatchedKind = 52;
jjmatchedPos = 3;
- return 11;
+ return 8;
}
if ((active0 & 0x200L) != 0L)
- return 11;
+ return 8;
return -1;
default :
return -1;
@@ -1302,7 +1309,7 @@
switch(curChar)
{
case 33:
- return jjStopAtPos(0, 53);
+ return jjStopAtPos(0, 54);
case 35:
jjmatchedKind = 15;
return jjMoveStringLiteralDfa1_1(0x5000L);
@@ -1315,7 +1322,7 @@
case 44:
return jjStopAtPos(0, 8);
case 46:
- return jjStopAtPos(0, 52);
+ return jjStopAtPos(0, 53);
case 91:
return jjStopAtPos(0, 5);
case 93:
@@ -1325,9 +1332,9 @@
case 116:
return jjMoveStringLiteralDfa1_1(0x200L);
case 123:
- return jjStopAtPos(0, 54);
- case 125:
return jjStopAtPos(0, 55);
+ case 125:
+ return jjStopAtPos(0, 56);
default :
return jjMoveNfa_1(0, 0);
}
@@ -1391,7 +1398,7 @@
{
case 101:
if ((active0 & 0x200L) != 0L)
- return jjStartNfaWithStates_1(3, 9, 11);
+ return jjStartNfaWithStates_1(3, 9, 8);
break;
case 115:
return jjMoveStringLiteralDfa4_1(active0, 0x400L);
@@ -1413,7 +1420,7 @@
{
case 101:
if ((active0 & 0x400L) != 0L)
- return jjStartNfaWithStates_1(4, 10, 11);
+ return jjStartNfaWithStates_1(4, 10, 8);
break;
default :
break;
@@ -1424,7 +1431,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 12;
+ jjnewStateCnt = 9;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -1440,17 +1447,10 @@
switch(jjstateSet[--i])
{
case 0:
- if ((0x2400L & l) != 0L)
- {
- if (kind > 22)
- kind = 22;
- }
- else if (curChar == 35)
+ if (curChar == 35)
jjstateSet[jjnewStateCnt++] = 5;
else if (curChar == 34)
jjCheckNAddTwoStates(1, 2);
- if (curChar == 13)
- jjstateSet[jjnewStateCnt++] = 7;
break;
case 1:
if ((0xfffffffbffffdbffL & l) != 0L)
@@ -1476,24 +1476,12 @@
if (curChar == 35)
jjstateSet[jjnewStateCnt++] = 5;
break;
- case 7:
- if (curChar == 10 && kind > 22)
- kind = 22;
- break;
case 8:
- if (curChar == 13)
- jjstateSet[jjnewStateCnt++] = 7;
- break;
- case 9:
- if ((0x2400L & l) != 0L && kind > 22)
- kind = 22;
- break;
- case 11:
if ((0x3ff200000000000L & l) == 0L)
break;
- if (kind > 51)
- kind = 51;
- jjstateSet[jjnewStateCnt++] = 11;
+ if (kind > 52)
+ kind = 52;
+ jjstateSet[jjnewStateCnt++] = 8;
break;
default : break;
}
@@ -1509,9 +1497,9 @@
case 0:
if ((0x7fffffe07fffffeL & l) == 0L)
break;
- if (kind > 51)
- kind = 51;
- jjCheckNAdd(11);
+ if (kind > 52)
+ kind = 52;
+ jjCheckNAdd(8);
break;
case 1:
jjAddStates(0, 1);
@@ -1520,12 +1508,12 @@
if (kind > 13)
kind = 13;
break;
- case 11:
+ case 8:
if ((0x7fffffe87fffffeL & l) == 0L)
break;
- if (kind > 51)
- kind = 51;
- jjCheckNAdd(11);
+ if (kind > 52)
+ kind = 52;
+ jjCheckNAdd(8);
break;
default : break;
}
@@ -1558,7 +1546,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 12 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -1572,7 +1560,7 @@
null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null,
null, null, null, null, null, null, null, null, null, null, null, null, null, null,
-null, null, };
+null, null, null, };
public static final String[] lexStateNames = {
"DEFAULT",
"REFERENCE",
@@ -1582,18 +1570,18 @@
"IN_SINGLE_LINE_COMMENT",
};
public static final int[] jjnewLexState = {
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 4, 3, -1, 0, 0, 0, -1, -1,
-1, 0, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, 4, 3, -1, 0, 0, 0, -1, -1,
-1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, 0, -1, -1,
-1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 0, -1,
+ -1, -1, -1, -1, -1, -1, 0, -1,
};
static final long[] jjtoToken = {
- 0xf8afffff8707ffL,
+ 0x1f15fffff8707ffL,
};
static final long[] jjtoSkip = {
- 0x100000000700000L,
+ 0x200000000700000L,
};
static final long[] jjtoSpecial = {
- 0x100000000400000L,
+ 0x200000000400000L,
};
static final long[] jjtoMore = {
0x8f800L,
@@ -1701,9 +1689,9 @@
jjmatchedKind = 0x7fffffff;
jjmatchedPos = 0;
curPos = jjMoveStringLiteralDfa0_1();
- if (jjmatchedPos == 0 && jjmatchedKind > 56)
+ if (jjmatchedPos == 0 && jjmatchedKind > 57)
{
- jjmatchedKind = 56;
+ jjmatchedKind = 57;
}
break;
case 2:
@@ -1822,9 +1810,14 @@
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
- inDirective = false;
+ if (inSet)
+ {
+ SwitchTo(DEFAULT);
+ inSet = false;
+ inDirective = false;
+ }
break;
- case 56 :
+ case 57 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
@@ -1920,6 +1913,12 @@
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
rparen++;
+
+ if (lparen == rparen)
+ {
+ SwitchTo(DEFAULT);
+ inDirective = false;
+ }
break;
case 7 :
if (image == null)
@@ -1969,6 +1968,13 @@
incMode = true;
break;
case 43 :
+ if (image == null)
+ image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
+ else
+ image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
+ inSet = true;
+ break;
+ case 44 :
if (image == null)
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
1.2 +20 -18
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ParserTreeConstants.java 2000/09/30 17:04:24 1.1
+++ ParserTreeConstants.java 2000/10/03 17:03:16 1.2
@@ -10,7 +10,7 @@
public int JJTNUMBERLITERAL = 3;
public int JJTSTRINGLITERAL = 4;
public int JJTIDENTIFIER = 5;
- public int JJTDIRECTIVEARGS = 6;
+ public int JJTWORD = 6;
public int JJTDIRECTIVE = 7;
public int JJTBLOCK = 8;
public int JJTOBJECTARRAY = 9;
@@ -22,22 +22,23 @@
public int JJTIFSTATEMENT = 15;
public int JJTELSESTATEMENT = 16;
public int JJTELSEIFSTATEMENT = 17;
- public int JJTEXPRESSION = 18;
- public int JJTASSIGNMENT = 19;
- public int JJTORNODE = 20;
- public int JJTANDNODE = 21;
- public int JJTEQNODE = 22;
- public int JJTNENODE = 23;
- public int JJTLTNODE = 24;
- public int JJTGTNODE = 25;
- public int JJTLENODE = 26;
- public int JJTGENODE = 27;
- public int JJTADDNODE = 28;
- public int JJTSUBTRACTNODE = 29;
- public int JJTMULNODE = 30;
- public int JJTDIVNODE = 31;
- public int JJTMODNODE = 32;
- public int JJTNOTNODE = 33;
+ public int JJTSETDIRECTIVE = 18;
+ public int JJTEXPRESSION = 19;
+ public int JJTASSIGNMENT = 20;
+ public int JJTORNODE = 21;
+ public int JJTANDNODE = 22;
+ public int JJTEQNODE = 23;
+ public int JJTNENODE = 24;
+ public int JJTLTNODE = 25;
+ public int JJTGTNODE = 26;
+ public int JJTLENODE = 27;
+ public int JJTGENODE = 28;
+ public int JJTADDNODE = 29;
+ public int JJTSUBTRACTNODE = 30;
+ public int JJTMULNODE = 31;
+ public int JJTDIVNODE = 32;
+ public int JJTMODNODE = 33;
+ public int JJTNOTNODE = 34;
public String[] jjtNodeName = {
@@ -47,7 +48,7 @@
"NumberLiteral",
"StringLiteral",
"Identifier",
- "DirectiveArgs",
+ "Word",
"Directive",
"Block",
"ObjectArray",
@@ -59,6 +60,7 @@
"IfStatement",
"ElseStatement",
"ElseIfStatement",
+ "SetDirective",
"Expression",
"Assignment",
"OrNode",
1.2 +2 -1
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserVisitor.java
Index: ParserVisitor.java
===================================================================
RCS file:
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParserVisitor.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ParserVisitor.java 2000/09/30 17:04:24 1.1
+++ ParserVisitor.java 2000/10/03 17:03:17 1.2
@@ -10,7 +10,7 @@
public Object visit(ASTNumberLiteral node, Object data);
public Object visit(ASTStringLiteral node, Object data);
public Object visit(ASTIdentifier node, Object data);
- public Object visit(ASTDirectiveArgs node, Object data);
+ public Object visit(ASTWord node, Object data);
public Object visit(ASTDirective node, Object data);
public Object visit(ASTBlock node, Object data);
public Object visit(ASTObjectArray node, Object data);
@@ -22,6 +22,7 @@
public Object visit(ASTIfStatement node, Object data);
public Object visit(ASTElseStatement node, Object data);
public Object visit(ASTElseIfStatement node, Object data);
+ public Object visit(ASTSetDirective node, Object data);
public Object visit(ASTExpression node, Object data);
public Object visit(ASTAssignment node, Object data);
public Object visit(ASTOrNode node, Object data);
1.1
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ASTSetDirective.java
Index: ASTSetDirective.java
===================================================================
/* Generated By:JJTree: Do not edit this line. ASTSetDirective.java */
package org.apache.velocity.runtime.parser;
import java.io.IOException;
import java.io.Writer;
import org.apache.velocity.Context;
public class ASTSetDirective extends SimpleNode
{
public ASTSetDirective(int id)
{
super(id);
}
public ASTSetDirective(Parser p, int id)
{
super(p, id);
}
/** Accept the visitor. **/
public Object jjtAccept(ParserVisitor visitor, Object data)
{
return visitor.visit(this, data);
}
public void render(Context context, Writer writer)
throws IOException
{
Object value = null;
Node right = jjtGetChild(0).jjtGetChild(0)
.jjtGetChild(1).jjtGetChild(0);
value = right.value(context);
ASTReference left = (ASTReference) jjtGetChild(0)
.jjtGetChild(0).jjtGetChild(0);
if (left.jjtGetNumChildren() == 0)
context.put(left.getFirstToken().image.substring(1), value);
else
left.setValue(context, value);
}
}