Author: byron
Date: Sun Feb 15 15:07:00 2009
New Revision: 744674
URL: http://svn.apache.org/viewvc?rev=744674&view=rev
Log:
VELOCITY-695 Add line comments to macro definitions
Added:
velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroCommentsTestCase.java
Modified:
velocity/engine/branches/2.0_Exp/src/java/org/apache/velocity/runtime/parser/Parser.java
velocity/engine/branches/2.0_Exp/src/parser/Parser.jjt
Modified:
velocity/engine/branches/2.0_Exp/src/java/org/apache/velocity/runtime/parser/Parser.java
URL:
http://svn.apache.org/viewvc/velocity/engine/branches/2.0_Exp/src/java/org/apache/velocity/runtime/parser/Parser.java?rev=744674&r1=744673&r2=744674&view=diff
==============================================================================
---
velocity/engine/branches/2.0_Exp/src/java/org/apache/velocity/runtime/parser/Parser.java
(original)
+++
velocity/engine/branches/2.0_Exp/src/java/org/apache/velocity/runtime/parser/Parser.java
Sun Feb 15 15:07:00 2009
@@ -838,7 +838,18 @@
jj_la1[11] = jj_gen;
;
}
- argType = DirectiveArg();
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case LBRACKET:
+ case LEFT_CURLEY:
+ case STRING_LITERAL:
+ case TRUE:
+ case FALSE:
+ case INTEGER_LITERAL:
+ case FLOATING_POINT_LITERAL:
+ case WORD:
+ case IDENTIFIER:
+ case LCURLY:
+ argType = DirectiveArg();
argtypes.add(argType);
if (d == null && argType == ParserTreeConstants.JJTWORD)
{
@@ -850,13 +861,36 @@
}
argPos++;
+ break;
+ case SINGLE_LINE_COMMENT_START:
+ if (!isMacro)
+ {
+ // We only allow line comments in macro definitions for now
+ {if (true) throw new MacroParseException("A Line comment is not
allowed in " + t.image
+ + " arguments", currentTemplateName, t);}
+ }
+ jj_consume_token(SINGLE_LINE_COMMENT_START);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case SINGLE_LINE_COMMENT:
+ jj_consume_token(SINGLE_LINE_COMMENT);
+ break;
+ default:
+ jj_la1[12] = jj_gen;
+ ;
+ }
+ break;
+ default:
+ jj_la1[13] = 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_la1[14] = jj_gen;
;
}
jj_consume_token(RPAREN);
@@ -908,7 +942,7 @@
;
break;
default:
- jj_la1[13] = jj_gen;
+ jj_la1[15] = jj_gen;
break label_4;
}
Statement();
@@ -1006,7 +1040,7 @@
;
break;
default:
- jj_la1[14] = jj_gen;
+ jj_la1[16] = jj_gen;
break label_5;
}
jj_consume_token(COMMA);
@@ -1020,7 +1054,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[15] = jj_gen;
+ jj_la1[17] = jj_gen;
;
}
}
@@ -1032,7 +1066,7 @@
jj_consume_token(RCURLY);
break;
default:
- jj_la1[16] = jj_gen;
+ jj_la1[18] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1083,7 +1117,7 @@
;
break;
default:
- jj_la1[17] = jj_gen;
+ jj_la1[19] = jj_gen;
break label_6;
}
jj_consume_token(COMMA);
@@ -1091,7 +1125,7 @@
}
break;
default:
- jj_la1[18] = jj_gen;
+ jj_la1[20] = jj_gen;
;
}
jj_consume_token(RBRACKET);
@@ -1133,7 +1167,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[19] = jj_gen;
+ jj_la1[21] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1145,7 +1179,7 @@
IntegerLiteral();
break;
default:
- jj_la1[20] = jj_gen;
+ jj_la1[22] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1154,7 +1188,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[21] = jj_gen;
+ jj_la1[23] = jj_gen;
;
}
jj_consume_token(DOUBLEDOT);
@@ -1163,7 +1197,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[22] = jj_gen;
+ jj_la1[24] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1175,7 +1209,7 @@
IntegerLiteral();
break;
default:
- jj_la1[23] = jj_gen;
+ jj_la1[25] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1184,7 +1218,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[24] = jj_gen;
+ jj_la1[26] = jj_gen;
;
}
jj_consume_token(RBRACKET);
@@ -1218,7 +1252,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[25] = jj_gen;
+ jj_la1[27] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1239,7 +1273,7 @@
Reference();
break;
default:
- jj_la1[26] = jj_gen;
+ jj_la1[28] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1248,7 +1282,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[27] = jj_gen;
+ jj_la1[29] = jj_gen;
;
}
}
@@ -1264,7 +1298,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[28] = jj_gen;
+ jj_la1[30] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1275,7 +1309,7 @@
IntegerLiteral();
break;
default:
- jj_la1[29] = jj_gen;
+ jj_la1[31] = jj_gen;
if (jj_2_6(2147483647)) {
IntegerRange();
} else {
@@ -1300,7 +1334,7 @@
FloatingPointLiteral();
break;
default:
- jj_la1[30] = jj_gen;
+ jj_la1[32] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1311,7 +1345,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[31] = jj_gen;
+ jj_la1[33] = jj_gen;
;
}
}
@@ -1348,7 +1382,7 @@
;
break;
default:
- jj_la1[32] = jj_gen;
+ jj_la1[34] = jj_gen;
break label_7;
}
jj_consume_token(COMMA);
@@ -1356,7 +1390,7 @@
}
break;
default:
- jj_la1[33] = jj_gen;
+ jj_la1[35] = jj_gen;
;
}
jj_consume_token(REFMOD2_RPAREN);
@@ -1427,7 +1461,7 @@
;
break;
default:
- jj_la1[34] = jj_gen;
+ jj_la1[36] = jj_gen;
break label_8;
}
Index();
@@ -1448,7 +1482,7 @@
Identifier();
break;
default:
- jj_la1[35] = jj_gen;
+ jj_la1[37] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1460,7 +1494,7 @@
;
break;
default:
- jj_la1[36] = jj_gen;
+ jj_la1[38] = jj_gen;
break label_10;
}
Index();
@@ -1477,7 +1511,7 @@
;
break;
default:
- jj_la1[37] = jj_gen;
+ jj_la1[39] = jj_gen;
break label_11;
}
Index();
@@ -1498,7 +1532,7 @@
Identifier();
break;
default:
- jj_la1[38] = jj_gen;
+ jj_la1[40] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1510,7 +1544,7 @@
;
break;
default:
- jj_la1[39] = jj_gen;
+ jj_la1[41] = jj_gen;
break label_13;
}
Index();
@@ -1519,7 +1553,7 @@
jj_consume_token(RCURLY);
break;
default:
- jj_la1[40] = jj_gen;
+ jj_la1[42] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1618,7 +1652,7 @@
jj_consume_token(EMPTY_INDEX);
break;
default:
- jj_la1[41] = jj_gen;
+ jj_la1[43] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -1646,7 +1680,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[42] = jj_gen;
+ jj_la1[44] = jj_gen;
;
}
jj_consume_token(LPAREN);
@@ -1687,7 +1721,7 @@
;
break;
default:
- jj_la1[43] = jj_gen;
+ jj_la1[45] = jj_gen;
break label_14;
}
Statement();
@@ -1721,13 +1755,13 @@
;
break;
default:
- jj_la1[44] = jj_gen;
+ jj_la1[46] = jj_gen;
break label_15;
}
}
break;
default:
- jj_la1[45] = jj_gen;
+ jj_la1[47] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -1735,7 +1769,7 @@
ElseStatement();
break;
default:
- jj_la1[46] = jj_gen;
+ jj_la1[48] = jj_gen;
;
}
jj_consume_token(END);
@@ -1802,7 +1836,7 @@
;
break;
default:
- jj_la1[47] = jj_gen;
+ jj_la1[49] = jj_gen;
break label_16;
}
Statement();
@@ -1859,7 +1893,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[48] = jj_gen;
+ jj_la1[50] = jj_gen;
;
}
jj_consume_token(LPAREN);
@@ -1900,7 +1934,7 @@
;
break;
default:
- jj_la1[49] = jj_gen;
+ jj_la1[51] = jj_gen;
break label_17;
}
Statement();
@@ -1962,7 +1996,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[50] = jj_gen;
+ jj_la1[52] = jj_gen;
;
}
Reference();
@@ -1971,7 +2005,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[51] = jj_gen;
+ jj_la1[53] = jj_gen;
;
}
jj_consume_token(EQUALS);
@@ -1987,7 +2021,7 @@
jj_consume_token(NEWLINE);
break;
default:
- jj_la1[52] = jj_gen;
+ jj_la1[54] = jj_gen;
;
}
} catch (Throwable jjte000) {
@@ -2026,7 +2060,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[53] = jj_gen;
+ jj_la1[55] = jj_gen;
;
}
Reference();
@@ -2035,7 +2069,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[54] = jj_gen;
+ jj_la1[56] = jj_gen;
;
}
jj_consume_token(EQUALS);
@@ -2051,7 +2085,7 @@
jj_consume_token(NEWLINE);
break;
default:
- jj_la1[55] = jj_gen;
+ jj_la1[57] = jj_gen;
;
}
} catch (Throwable jjte000) {
@@ -2090,7 +2124,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[56] = jj_gen;
+ jj_la1[58] = jj_gen;
;
}
Reference();
@@ -2099,7 +2133,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[57] = jj_gen;
+ jj_la1[59] = jj_gen;
;
}
jj_consume_token(EQUALS);
@@ -2115,7 +2149,7 @@
jj_consume_token(NEWLINE);
break;
default:
- jj_la1[58] = jj_gen;
+ jj_la1[60] = jj_gen;
;
}
} catch (Throwable jjte000) {
@@ -2232,7 +2266,7 @@
;
break;
default:
- jj_la1[59] = jj_gen;
+ jj_la1[61] = jj_gen;
break label_18;
}
jj_consume_token(LOGICAL_OR);
@@ -2272,7 +2306,7 @@
;
break;
default:
- jj_la1[60] = jj_gen;
+ jj_la1[62] = jj_gen;
break label_19;
}
jj_consume_token(LOGICAL_AND);
@@ -2313,7 +2347,7 @@
;
break;
default:
- jj_la1[61] = jj_gen;
+ jj_la1[63] = jj_gen;
break label_20;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2372,7 +2406,7 @@
}
break;
default:
- jj_la1[62] = jj_gen;
+ jj_la1[64] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2391,7 +2425,7 @@
;
break;
default:
- jj_la1[63] = jj_gen;
+ jj_la1[65] = jj_gen;
break label_21;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2504,7 +2538,7 @@
}
break;
default:
- jj_la1[64] = jj_gen;
+ jj_la1[66] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2521,7 +2555,7 @@
;
break;
default:
- jj_la1[65] = jj_gen;
+ jj_la1[67] = jj_gen;
break label_22;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2580,7 +2614,7 @@
}
break;
default:
- jj_la1[66] = jj_gen;
+ jj_la1[68] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2598,7 +2632,7 @@
;
break;
default:
- jj_la1[67] = jj_gen;
+ jj_la1[69] = jj_gen;
break label_23;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2684,7 +2718,7 @@
}
break;
default:
- jj_la1[68] = jj_gen;
+ jj_la1[70] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2698,7 +2732,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[69] = jj_gen;
+ jj_la1[71] = jj_gen;
;
}
jj_consume_token(LOGICAL_NOT);
@@ -2742,7 +2776,7 @@
PrimaryExpression();
break;
default:
- jj_la1[70] = jj_gen;
+ jj_la1[72] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2755,7 +2789,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[71] = jj_gen;
+ jj_la1[73] = jj_gen;
;
}
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
@@ -2770,7 +2804,7 @@
IntegerLiteral();
break;
default:
- jj_la1[72] = jj_gen;
+ jj_la1[74] = jj_gen;
if (jj_2_12(2147483647)) {
IntegerRange();
} else {
@@ -2796,7 +2830,7 @@
jj_consume_token(RPAREN);
break;
default:
- jj_la1[73] = jj_gen;
+ jj_la1[75] = jj_gen;
jj_consume_token(-1);
throw new ParseException();
}
@@ -2807,7 +2841,7 @@
jj_consume_token(WHITESPACE);
break;
default:
- jj_la1[74] = jj_gen;
+ jj_la1[76] = jj_gen;
;
}
}
@@ -2896,109 +2930,74 @@
finally { jj_save(11, xla); }
}
- final private boolean jj_3R_29() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_scan_token(33)) jj_scanpos = xsp;
- xsp = jj_scanpos;
- if (jj_3R_51()) {
- jj_scanpos = xsp;
- if (jj_3R_52()) {
- jj_scanpos = xsp;
- if (jj_3R_53()) {
- jj_scanpos = xsp;
- if (jj_3R_54()) {
- jj_scanpos = xsp;
- if (jj_3R_55()) {
- jj_scanpos = xsp;
- if (jj_3R_56()) {
- jj_scanpos = xsp;
- if (jj_3R_57()) {
- jj_scanpos = xsp;
- if (jj_3R_58()) {
- jj_scanpos = xsp;
- if (jj_3R_59()) return true;
- }
- }
- }
- }
- }
- }
- }
- }
- xsp = jj_scanpos;
- if (jj_scan_token(33)) jj_scanpos = xsp;
- return false;
- }
-
- final private boolean jj_3R_100() {
+ final private boolean jj_3R_102() {
if (jj_scan_token(COMMA)) return true;
- if (jj_3R_29()) return true;
+ if (jj_3R_30()) return true;
if (jj_scan_token(COLON)) return true;
- if (jj_3R_29()) return true;
+ if (jj_3R_30()) return true;
return false;
}
- final private boolean jj_3R_96() {
+ final private boolean jj_3R_98() {
if (jj_3R_24()) return true;
return false;
}
- final private boolean jj_3R_26() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_97() {
+ if (jj_3R_71()) return true;
return false;
}
- final private boolean jj_3R_95() {
- if (jj_3R_71()) return true;
+ final private boolean jj_3R_96() {
+ if (jj_3R_70()) return true;
return false;
}
- final private boolean jj_3R_94() {
- if (jj_3R_70()) return true;
+ final private boolean jj_3R_95() {
+ if (jj_3R_41()) return true;
return false;
}
- final private boolean jj_3R_93() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_94() {
+ if (jj_3R_66()) return true;
return false;
}
- final private boolean jj_3R_92() {
- if (jj_3R_65()) return true;
+ final private boolean jj_3R_101() {
+ if (jj_3R_41()) return true;
return false;
}
- final private boolean jj_3R_99() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_26() {
+ if (jj_3R_41()) return true;
return false;
}
- final private boolean jj_3R_76() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_78() {
+ if (jj_3R_41()) return true;
return false;
}
- final private boolean jj_3R_101() {
+ final private boolean jj_3R_103() {
if (jj_scan_token(COMMA)) return true;
- if (jj_3R_29()) return true;
+ if (jj_3R_30()) return true;
return false;
}
- final private boolean jj_3R_91() {
+ final private boolean jj_3R_93() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
xsp = jj_scanpos;
- if (jj_3R_92()) {
- jj_scanpos = xsp;
- if (jj_3R_93()) {
- jj_scanpos = xsp;
if (jj_3R_94()) {
jj_scanpos = xsp;
if (jj_3R_95()) {
jj_scanpos = xsp;
- if (jj_3R_96()) return true;
+ if (jj_3R_96()) {
+ jj_scanpos = xsp;
+ if (jj_3R_97()) {
+ jj_scanpos = xsp;
+ if (jj_3R_98()) return true;
}
}
}
@@ -3008,45 +3007,40 @@
return false;
}
- final private boolean jj_3R_25() {
+ final private boolean jj_3R_100() {
if (jj_3R_24()) return true;
return false;
}
- final private boolean jj_3R_98() {
+ final private boolean jj_3R_25() {
if (jj_3R_24()) return true;
return false;
}
- final private boolean jj_3R_75() {
+ final private boolean jj_3R_77() {
if (jj_3R_24()) return true;
return false;
}
- final private boolean jj_3R_78() {
- if (jj_3R_29()) return true;
+ final private boolean jj_3R_80() {
+ if (jj_3R_30()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_101()) { jj_scanpos = xsp; break; }
+ if (jj_3R_103()) { jj_scanpos = xsp; break; }
}
return false;
}
- final private boolean jj_3_1() {
- if (jj_3R_24()) return true;
- return false;
- }
-
- final private boolean jj_3R_66() {
+ final private boolean jj_3R_67() {
if (jj_scan_token(LBRACKET)) return true;
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
xsp = jj_scanpos;
- if (jj_3R_75()) {
+ if (jj_3R_77()) {
jj_scanpos = xsp;
- if (jj_3R_76()) return true;
+ if (jj_3R_78()) return true;
}
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
@@ -3054,9 +3048,9 @@
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
xsp = jj_scanpos;
- if (jj_3R_98()) {
+ if (jj_3R_100()) {
jj_scanpos = xsp;
- if (jj_3R_99()) return true;
+ if (jj_3R_101()) return true;
}
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
@@ -3064,8 +3058,8 @@
return false;
}
- final private boolean jj_3R_50() {
- if (jj_3R_71()) return true;
+ final private boolean jj_3_1() {
+ if (jj_3R_24()) return true;
return false;
}
@@ -3073,38 +3067,17 @@
if (jj_scan_token(LBRACKET)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_78()) jj_scanpos = xsp;
+ if (jj_3R_80()) jj_scanpos = xsp;
if (jj_scan_token(RBRACKET)) return true;
return false;
}
- final private boolean jj_3R_49() {
- if (jj_3R_70()) return true;
- return false;
- }
-
- final private boolean jj_3_3() {
- if (jj_scan_token(LBRACKET)) return true;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_scan_token(33)) jj_scanpos = xsp;
- xsp = jj_scanpos;
- if (jj_3R_25()) {
- jj_scanpos = xsp;
- if (jj_3R_26()) return true;
- }
- xsp = jj_scanpos;
- if (jj_scan_token(33)) jj_scanpos = xsp;
- if (jj_scan_token(DOUBLEDOT)) return true;
- return false;
- }
-
- final private boolean jj_3R_48() {
- if (jj_3R_69()) return true;
+ final private boolean jj_3R_65() {
+ if (jj_3R_71()) return true;
return false;
}
- final private boolean jj_3R_77() {
+ final private boolean jj_3R_79() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
@@ -3112,24 +3085,24 @@
}
final private boolean jj_3_5() {
- if (jj_3R_29()) return true;
+ if (jj_3R_30()) return true;
if (jj_scan_token(COLON)) return true;
- if (jj_3R_29()) return true;
+ if (jj_3R_30()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_100()) { jj_scanpos = xsp; break; }
+ if (jj_3R_102()) { jj_scanpos = xsp; break; }
}
return false;
}
- final private boolean jj_3R_47() {
- if (jj_3R_68()) return true;
+ final private boolean jj_3R_64() {
+ if (jj_3R_70()) return true;
return false;
}
- final private boolean jj_3R_37() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_38() {
+ if (jj_3R_41()) return true;
return false;
}
@@ -3139,7 +3112,7 @@
xsp = jj_scanpos;
if (jj_3_5()) {
jj_scanpos = xsp;
- if (jj_3R_77()) return true;
+ if (jj_3R_79()) return true;
}
xsp = jj_scanpos;
if (jj_scan_token(9)) {
@@ -3149,76 +3122,102 @@
return false;
}
- final private boolean jj_3R_46() {
- if (jj_3R_67()) return true;
+ final private boolean jj_3_3() {
+ if (jj_scan_token(LBRACKET)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(33)) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_25()) {
+ jj_scanpos = xsp;
+ if (jj_3R_26()) return true;
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(33)) jj_scanpos = xsp;
+ if (jj_scan_token(DOUBLEDOT)) return true;
return false;
}
- final private boolean jj_3R_45() {
- if (jj_3R_66()) return true;
+ final private boolean jj_3R_63() {
+ if (jj_3R_69()) return true;
return false;
}
- final private boolean jj_3R_44() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_62() {
+ if (jj_3R_68()) return true;
return false;
}
- final private boolean jj_3R_36() {
+ final private boolean jj_3R_61() {
+ if (jj_3R_72()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_37() {
if (jj_3R_24()) return true;
return false;
}
- final private boolean jj_3R_43() {
- if (jj_3R_65()) return true;
+ final private boolean jj_3R_60() {
+ if (jj_3R_67()) return true;
return false;
}
- final private boolean jj_3R_27() {
- if (jj_scan_token(COMMA)) return true;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_scan_token(33)) jj_scanpos = xsp;
+ final private boolean jj_3R_59() {
+ if (jj_3R_41()) return true;
return false;
}
- final private boolean jj_3R_42() {
- if (jj_3R_64()) return true;
+ final private boolean jj_3R_92() {
+ if (jj_3R_74()) return true;
return false;
}
- final private boolean jj_3R_90() {
- if (jj_3R_73()) return true;
+ final private boolean jj_3R_58() {
+ if (jj_3R_66()) return true;
return false;
}
- final private boolean jj_3R_41() {
- if (jj_3R_24()) return true;
+ final private boolean jj_3R_57() {
+ if (jj_3R_76()) return true;
return false;
}
- final private boolean jj_3R_28() {
+ final private boolean jj_3R_91() {
+ if (jj_3R_74()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_27() {
+ if (jj_scan_token(COMMA)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(33)) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_42() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_41()) {
+ if (jj_3R_56()) {
jj_scanpos = xsp;
- if (jj_3R_42()) {
+ if (jj_3R_57()) {
jj_scanpos = xsp;
- if (jj_3R_43()) {
+ if (jj_3R_58()) {
jj_scanpos = xsp;
- if (jj_3R_44()) {
+ if (jj_3R_59()) {
jj_scanpos = xsp;
- if (jj_3R_45()) {
+ if (jj_3R_60()) {
jj_scanpos = xsp;
- if (jj_3R_46()) {
+ if (jj_3R_61()) {
jj_scanpos = xsp;
- if (jj_3R_47()) {
+ if (jj_3R_62()) {
jj_scanpos = xsp;
- if (jj_3R_48()) {
+ if (jj_3R_63()) {
jj_scanpos = xsp;
- if (jj_3R_49()) {
+ if (jj_3R_64()) {
jj_scanpos = xsp;
- if (jj_3R_50()) return true;
+ if (jj_3R_65()) return true;
}
}
}
@@ -3231,23 +3230,18 @@
return false;
}
- final private boolean jj_3R_89() {
- if (jj_3R_73()) return true;
- return false;
- }
-
- final private boolean jj_3R_64() {
- if (jj_scan_token(WORD)) return true;
+ final private boolean jj_3R_56() {
+ if (jj_3R_24()) return true;
return false;
}
- final private boolean jj_3R_60() {
- if (jj_scan_token(IDENTIFIER)) return true;
+ final private boolean jj_3R_35() {
+ if (jj_3R_52()) return true;
return false;
}
- final private boolean jj_3R_34() {
- if (jj_3R_60()) return true;
+ final private boolean jj_3R_76() {
+ if (jj_scan_token(WORD)) return true;
return false;
}
@@ -3257,9 +3251,9 @@
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
xsp = jj_scanpos;
- if (jj_3R_36()) {
+ if (jj_3R_37()) {
jj_scanpos = xsp;
- if (jj_3R_37()) return true;
+ if (jj_3R_38()) return true;
}
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
@@ -3267,90 +3261,90 @@
return false;
}
- final private boolean jj_3R_32() {
- if (jj_3R_60()) return true;
+ final private boolean jj_3R_52() {
+ if (jj_scan_token(IDENTIFIER)) return true;
return false;
}
- final private boolean jj_3R_88() {
- if (jj_scan_token(LPAREN)) return true;
+ final private boolean jj_3R_33() {
+ if (jj_3R_52()) return true;
return false;
}
- final private boolean jj_3_4() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_scan_token(33)) jj_scanpos = xsp;
- xsp = jj_scanpos;
- if (jj_3R_27()) jj_scanpos = xsp;
- if (jj_3R_28()) return true;
+ final private boolean jj_3R_90() {
+ if (jj_scan_token(LPAREN)) return true;
return false;
}
- final private boolean jj_3R_87() {
+ final private boolean jj_3R_89() {
if (jj_3R_71()) return true;
return false;
}
- final private boolean jj_3R_86() {
+ final private boolean jj_3R_88() {
if (jj_3R_70()) return true;
return false;
}
- final private boolean jj_3R_85() {
+ final private boolean jj_3R_87() {
if (jj_3R_69()) return true;
return false;
}
- final private boolean jj_3R_84() {
+ final private boolean jj_3R_86() {
if (jj_3R_68()) return true;
return false;
}
- final private boolean jj_3R_83() {
- if (jj_3R_67()) return true;
+ final private boolean jj_3R_85() {
+ if (jj_3R_72()) return true;
return false;
}
- final private boolean jj_3R_65() {
- if (jj_scan_token(STRING_LITERAL)) return true;
+ final private boolean jj_3R_84() {
+ if (jj_3R_67()) return true;
return false;
}
- final private boolean jj_3R_82() {
- if (jj_3R_66()) return true;
+ final private boolean jj_3R_83() {
+ if (jj_3R_41()) return true;
return false;
}
- final private boolean jj_3R_81() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_82() {
+ if (jj_3R_24()) return true;
return false;
}
- final private boolean jj_3R_80() {
- if (jj_3R_24()) return true;
+ final private boolean jj_3_4() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(33)) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_27()) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_28()) {
+ jj_scanpos = xsp;
+ if (jj_3R_29()) return true;
+ }
return false;
}
- final private boolean jj_3R_40() {
- if (jj_scan_token(INTEGER_LITERAL)) return true;
+ final private boolean jj_3R_81() {
+ if (jj_3R_66()) return true;
return false;
}
- final private boolean jj_3R_79() {
- if (jj_3R_65()) return true;
+ final private boolean jj_3R_66() {
+ if (jj_scan_token(STRING_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_72() {
+ final private boolean jj_3R_73() {
Token xsp;
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
xsp = jj_scanpos;
- if (jj_3R_79()) {
- jj_scanpos = xsp;
- if (jj_3R_80()) {
- jj_scanpos = xsp;
if (jj_3R_81()) {
jj_scanpos = xsp;
if (jj_3R_82()) {
@@ -3365,7 +3359,11 @@
jj_scanpos = xsp;
if (jj_3R_87()) {
jj_scanpos = xsp;
- if (jj_3R_88()) return true;
+ if (jj_3R_88()) {
+ jj_scanpos = xsp;
+ if (jj_3R_89()) {
+ jj_scanpos = xsp;
+ if (jj_3R_90()) return true;
}
}
}
@@ -3378,22 +3376,30 @@
return false;
}
- final private boolean jj_3R_67() {
- if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
+ final private boolean jj_3_10() {
+ if (jj_3R_34()) return true;
return false;
}
- final private boolean jj_3_10() {
- if (jj_3R_33()) return true;
+ final private boolean jj_3R_41() {
+ if (jj_scan_token(INTEGER_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_35() {
+ final private boolean jj_3R_29() {
+ if (jj_scan_token(SINGLE_LINE_COMMENT_START)) return true;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(27)) jj_scanpos = xsp;
+ return false;
+ }
+
+ final private boolean jj_3R_36() {
Token xsp;
xsp = jj_scanpos;
if (jj_3_11()) {
jj_scanpos = xsp;
- if (jj_3R_62()) return true;
+ if (jj_3R_54()) return true;
}
return false;
}
@@ -3403,33 +3409,38 @@
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
if (jj_scan_token(LOGICAL_NOT)) return true;
- if (jj_3R_35()) return true;
+ if (jj_3R_36()) return true;
return false;
}
- final private boolean jj_3R_62() {
- if (jj_3R_72()) return true;
+ final private boolean jj_3R_54() {
+ if (jj_3R_73()) return true;
return false;
}
- final private boolean jj_3R_31() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_32() {
+ if (jj_3R_41()) return true;
return false;
}
final private boolean jj_3_8() {
- if (jj_3R_33()) return true;
+ if (jj_3R_34()) return true;
return false;
}
- final private boolean jj_3R_74() {
- if (jj_3R_73()) return true;
+ final private boolean jj_3R_72() {
+ if (jj_scan_token(FLOATING_POINT_LITERAL)) return true;
return false;
}
- final private boolean jj_3R_97() {
+ final private boolean jj_3R_75() {
+ if (jj_3R_74()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_99() {
if (jj_scan_token(COMMA)) return true;
- if (jj_3R_29()) return true;
+ if (jj_3R_30()) return true;
return false;
}
@@ -3438,12 +3449,17 @@
return false;
}
- final private boolean jj_3R_63() {
- if (jj_3R_73()) return true;
+ final private boolean jj_3R_55() {
+ if (jj_3R_74()) return true;
return false;
}
- final private boolean jj_3R_30() {
+ final private boolean jj_3R_28() {
+ if (jj_3R_42()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_31() {
if (jj_3R_24()) return true;
return false;
}
@@ -3459,11 +3475,11 @@
xsp = jj_scanpos;
if (jj_3_10()) {
jj_scanpos = xsp;
- if (jj_3R_34()) return true;
+ if (jj_3R_35()) return true;
}
while (true) {
xsp = jj_scanpos;
- if (jj_3R_90()) { jj_scanpos = xsp; break; }
+ if (jj_3R_92()) { jj_scanpos = xsp; break; }
}
return false;
}
@@ -3474,32 +3490,32 @@
xsp = jj_scanpos;
if (jj_3_8()) {
jj_scanpos = xsp;
- if (jj_3R_32()) return true;
+ if (jj_3R_33()) return true;
}
while (true) {
xsp = jj_scanpos;
- if (jj_3R_89()) { jj_scanpos = xsp; break; }
+ if (jj_3R_91()) { jj_scanpos = xsp; break; }
}
return false;
}
- final private boolean jj_3R_61() {
- if (jj_3R_29()) return true;
+ final private boolean jj_3R_53() {
+ if (jj_3R_30()) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_97()) { jj_scanpos = xsp; break; }
+ if (jj_3R_99()) { jj_scanpos = xsp; break; }
}
return false;
}
- final private boolean jj_3R_39() {
+ final private boolean jj_3R_40() {
if (jj_scan_token(LCURLY)) return true;
if (jj_scan_token(IDENTIFIER)) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_74()) { jj_scanpos = xsp; break; }
+ if (jj_3R_75()) { jj_scanpos = xsp; break; }
}
while (true) {
xsp = jj_scanpos;
@@ -3509,12 +3525,12 @@
return false;
}
- final private boolean jj_3R_38() {
+ final private boolean jj_3R_39() {
if (jj_scan_token(IDENTIFIER)) return true;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_63()) { jj_scanpos = xsp; break; }
+ if (jj_3R_55()) { jj_scanpos = xsp; break; }
}
while (true) {
xsp = jj_scanpos;
@@ -3526,16 +3542,16 @@
final private boolean jj_3R_24() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_38()) {
+ if (jj_3R_39()) {
jj_scanpos = xsp;
- if (jj_3R_39()) return true;
+ if (jj_3R_40()) return true;
}
return false;
}
- final private boolean jj_3R_73() {
+ final private boolean jj_3R_74() {
if (jj_scan_token(INDEX_LBRACKET)) return true;
- if (jj_3R_91()) return true;
+ if (jj_3R_93()) return true;
if (jj_scan_token(INDEX_RBRACKET)) return true;
return false;
}
@@ -3546,9 +3562,9 @@
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
xsp = jj_scanpos;
- if (jj_3R_30()) {
+ if (jj_3R_31()) {
jj_scanpos = xsp;
- if (jj_3R_31()) return true;
+ if (jj_3R_32()) return true;
}
xsp = jj_scanpos;
if (jj_scan_token(33)) jj_scanpos = xsp;
@@ -3556,63 +3572,98 @@
return false;
}
- final private boolean jj_3R_33() {
- if (jj_3R_60()) return true;
+ final private boolean jj_3R_34() {
+ if (jj_3R_52()) return true;
if (jj_scan_token(LPAREN)) return true;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_61()) jj_scanpos = xsp;
+ if (jj_3R_53()) jj_scanpos = xsp;
if (jj_scan_token(REFMOD2_RPAREN)) return true;
return false;
}
- final private boolean jj_3_2() {
- if (jj_scan_token(DOUBLE_ESCAPE)) return true;
- return false;
- }
-
- final private boolean jj_3R_59() {
- if (jj_3R_67()) return true;
+ final private boolean jj_3R_51() {
+ if (jj_3R_72()) return true;
return false;
}
- final private boolean jj_3R_58() {
+ final private boolean jj_3R_50() {
if (jj_3R_24()) return true;
return false;
}
- final private boolean jj_3R_57() {
+ final private boolean jj_3R_49() {
if (jj_3R_71()) return true;
return false;
}
- final private boolean jj_3R_56() {
+ final private boolean jj_3R_48() {
if (jj_3R_70()) return true;
return false;
}
- final private boolean jj_3R_55() {
+ final private boolean jj_3R_47() {
if (jj_3R_69()) return true;
return false;
}
- final private boolean jj_3R_54() {
+ final private boolean jj_3_2() {
+ if (jj_scan_token(DOUBLE_ESCAPE)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_46() {
if (jj_3R_68()) return true;
return false;
}
- final private boolean jj_3R_53() {
- if (jj_3R_66()) return true;
+ final private boolean jj_3R_45() {
+ if (jj_3R_67()) return true;
return false;
}
- final private boolean jj_3R_52() {
- if (jj_3R_40()) return true;
+ final private boolean jj_3R_44() {
+ if (jj_3R_41()) return true;
return false;
}
- final private boolean jj_3R_51() {
- if (jj_3R_65()) return true;
+ final private boolean jj_3R_43() {
+ if (jj_3R_66()) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_30() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_scan_token(33)) jj_scanpos = xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_43()) {
+ jj_scanpos = xsp;
+ if (jj_3R_44()) {
+ jj_scanpos = xsp;
+ if (jj_3R_45()) {
+ jj_scanpos = xsp;
+ if (jj_3R_46()) {
+ jj_scanpos = xsp;
+ if (jj_3R_47()) {
+ jj_scanpos = xsp;
+ if (jj_3R_48()) {
+ jj_scanpos = xsp;
+ if (jj_3R_49()) {
+ jj_scanpos = xsp;
+ if (jj_3R_50()) {
+ jj_scanpos = xsp;
+ if (jj_3R_51()) return true;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ xsp = jj_scanpos;
+ if (jj_scan_token(33)) jj_scanpos = xsp;
return false;
}
@@ -3624,7 +3675,7 @@
public boolean lookingAhead = false;
private boolean jj_semLA;
private int jj_gen;
- final private int[] jj_la1 = new int[75];
+ final private int[] jj_la1 = new int[77];
static private int[] jj_la1_0;
static private int[] jj_la1_1;
static private int[] jj_la1_2;
@@ -3634,13 +3685,13 @@
jj_la1_2();
}
private static void jj_la1_0() {
- jj_la1_0 = new int[]
{0x7781ec00,0x0,0x7781ec00,0x8000000,0x30800000,0x0,0x108,0x0,0x0,0x0,0x0,0x20,0x0,0x7781ec00,0x20,0x0,0x200,0x20,0x108,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x108,0x0,0x20,0x108,0x2,0x0,0x2,0x2,0x0,0x2,0x0,0x6000c00,0x0,0x7781ec00,0x0,0x0,0x0,0x7781ec00,0x0,0x7781ec00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x508,0x0,0x0,0x508,0x0,};
+ jj_la1_0 = new int[]
{0x7781ec00,0x0,0x7781ec00,0x8000000,0x30800000,0x0,0x108,0x0,0x0,0x0,0x0,0x20,0x8000000,0x800108,0x0,0x7781ec00,0x20,0x0,0x200,0x20,0x108,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x108,0x0,0x20,0x108,0x2,0x0,0x2,0x2,0x0,0x2,0x0,0x6000c00,0x0,0x7781ec00,0x0,0x0,0x0,0x7781ec00,0x0,0x7781ec00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x508,0x0,0x0,0x508,0x0,};
}
private static void jj_la1_1() {
- jj_la1_1 = new int[]
{0x1a400004,0x2400000,0x18000004,0x0,0x0,0x8000004,0x10000018,0x0,0x2,0x2,0x2,0x0,0x2,0x1a400004,0x0,0x2,0x0,0x0,0x1800001e,0x2,0x8000000,0x2,0x2,0x8000000,0x2,0x2,0x800001c,0x2,0x2,0x8000004,0x10000018,0x2,0x0,0x1800001e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18000004,0x2,0x1a400004,0x800000,0x800000,0x1000000,0x1a400004,0x2,0x1a400004,0x2,0x2,0x20,0x2,0x2,0x20,0x2,0x2,0x20,0x1000,0x800,0x60000,0x60000,0x1e000,0x1e000,0xc0,0xc0,0x700,0x700,0x2,0x1800001e,0x2,0x8000004,0x10000018,0x2,};
+ jj_la1_1 = new int[]
{0x1a400004,0x2400000,0x18000004,0x0,0x0,0x8000004,0x10000018,0x0,0x2,0x2,0x2,0x0,0x0,0x1800001c,0x2,0x1a400004,0x0,0x2,0x0,0x0,0x1800001e,0x2,0x8000000,0x2,0x2,0x8000000,0x2,0x2,0x800001c,0x2,0x2,0x8000004,0x10000018,0x2,0x0,0x1800001e,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x18000004,0x2,0x1a400004,0x800000,0x800000,0x1000000,0x1a400004,0x2,0x1a400004,0x2,0x2,0x20,0x2,0x2,0x20,0x2,0x2,0x20,0x1000,0x800,0x60000,0x60000,0x1e000,0x1e000,0xc0,0xc0,0x700,0x700,0x2,0x1800001e,0x2,0x8000004,0x10000018,0x2,};
}
private static void jj_la1_2() {
- jj_la1_2 = new int[]
{0x9e3,0x0,0x9c3,0x0,0x0,0xa1,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x9e3,0x0,0x0,0x100,0x0,0xa0,0x0,0xa0,0x0,0x0,0xa0,0x0,0x0,0xa0,0x0,0x0,0x0,0xa0,0x0,0x0,0xa0,0x0,0x20,0x0,0x0,0x20,0x0,0xa0,0x9c0,0x0,0x9e3,0x0,0x0,0x0,0x9e3,0x0,0x9e3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa0,0x0,0xa0,0x0,0x0,};
+ jj_la1_2 = new int[]
{0x9e3,0x0,0x9c3,0x0,0x0,0xa1,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0xa1,0x0,0x9e3,0x0,0x0,0x100,0x0,0xa0,0x0,0xa0,0x0,0x0,0xa0,0x0,0x0,0xa0,0x0,0x0,0x0,0xa0,0x0,0x0,0xa0,0x0,0x20,0x0,0x0,0x20,0x0,0xa0,0x9c0,0x0,0x9e3,0x0,0x0,0x0,0x9e3,0x0,0x9e3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xa0,0x0,0xa0,0x0,0x0,};
}
final private JJCalls[] jj_2_rtns = new JJCalls[12];
private boolean jj_rescan = false;
@@ -3651,7 +3702,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 75; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 77; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -3661,7 +3712,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 75; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 77; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -3670,7 +3721,7 @@
token = new Token();
jj_ntk = -1;
jj_gen = 0;
- for (int i = 0; i < 75; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 77; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -3680,7 +3731,7 @@
jj_ntk = -1;
jjtree.reset();
jj_gen = 0;
- for (int i = 0; i < 75; i++) jj_la1[i] = -1;
+ for (int i = 0; i < 77; i++) jj_la1[i] = -1;
for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
}
@@ -3799,7 +3850,7 @@
la1tokens[jj_kind] = true;
jj_kind = -1;
}
- for (int i = 0; i < 75; i++) {
+ for (int i = 0; i < 77; i++) {
if (jj_la1[i] == jj_gen) {
for (int j = 0; j < 32; j++) {
if ((jj_la1_0[i] & (1<<j)) != 0) {
Modified: velocity/engine/branches/2.0_Exp/src/parser/Parser.jjt
URL:
http://svn.apache.org/viewvc/velocity/engine/branches/2.0_Exp/src/parser/Parser.jjt?rev=744674&r1=744673&r2=744674&view=diff
==============================================================================
--- velocity/engine/branches/2.0_Exp/src/parser/Parser.jjt (original)
+++ velocity/engine/branches/2.0_Exp/src/parser/Parser.jjt Sun Feb 15 15:07:00
2009
@@ -1596,9 +1596,8 @@
/*
* if this is indeed a token, match the #foo ( arg ) pattern
*/
- (([<WHITESPACE>] <LPAREN>) ( LOOKAHEAD(2) [<WHITESPACE>] [<COMMA>
[<WHITESPACE>]]
-
- argType = DirectiveArg()
+ ([<WHITESPACE>] <LPAREN> ( LOOKAHEAD(2) [<WHITESPACE>] [<COMMA>
[<WHITESPACE>]]
+ (argType = DirectiveArg()
{
argtypes.add(argType);
if (d == null && argType == ParserTreeConstants.JJTWORD)
@@ -1612,7 +1611,16 @@
argPos++;
}
-
+ |
+ {
+ if (!isMacro)
+ {
+ // We only allow line comments in macro definitions for now
+ throw new MacroParseException("A Line comment is not allowed in
" + t.image
+ + " arguments", currentTemplateName, t);
+ }
+ }
+ <SINGLE_LINE_COMMENT_START> [<SINGLE_LINE_COMMENT>] )
)* [<WHITESPACE>] <RPAREN>)
|
{
Added:
velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroCommentsTestCase.java
URL:
http://svn.apache.org/viewvc/velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroCommentsTestCase.java?rev=744674&view=auto
==============================================================================
---
velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroCommentsTestCase.java
(added)
+++
velocity/engine/branches/2.0_Exp/src/test/org/apache/velocity/test/MacroCommentsTestCase.java
Sun Feb 15 15:07:00 2009
@@ -0,0 +1,57 @@
+package org.apache.velocity.test;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.velocity.exception.MethodInvocationException;
+import org.apache.velocity.exception.VelocityException;
+import org.apache.velocity.exception.ParseErrorException;
+import org.apache.velocity.runtime.RuntimeConstants;
+import org.apache.velocity.runtime.parser.ParseException;
+/**
+ * Test Macro comment functionality
+ */
+public class MacroCommentsTestCase extends BaseTestCase
+{
+ public MacroCommentsTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void setUp() throws Exception
+ {
+ super.setUp();
+ }
+
+ public void testComments()
+ {
+ assertEvalEquals("ab","#macro(foo ##\n $bar \n ## blaa\n
$bar2##\n)$bar$bar2#end#foo(\"a\" \"b\")");
+ assertEvalEquals("","#macro(foo1##\n)#end#foo1()");
+ assertEvalEquals("ab","#macro(foo2##\n\t ####\r $bar \n ##\n## Testing
blaa\n $bar2##\n)$bar$bar2#end#foo2(\"a\" \"b\")");
+ assertEvalEquals("","#macro(foo4 ## test\n ## test2 ## test3
\n)#end#foo4()");
+ }
+
+ public void testErrors()
+ {
+ // We only allow comment lines in macro definitions
+ assertEvalException("#foo1(## test)", ParseErrorException.class);
+ assertEvalException("#foo1($test ## test)", ParseErrorException.class);
+ assertEvalException("#break(## test)", ParseErrorException.class);
+ }
+}