geirm 00/11/07 13:34:15
Modified: src/java/org/apache/velocity/runtime/parser Parser.java
Parser.jj ParserConstants.java
ParserTokenManager.java ParserTreeConstants.java
Log:
Usual Parser.jjt autogen miscreants. (Escape handling changes.)
Revision Changes Path
1.26 +324 -300
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.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- Parser.java 2000/11/06 04:12:58 1.25
+++ Parser.java 2000/11/07 21:33:52 1.26
@@ -18,7 +18,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
- * @version $Id: Parser.java,v 1.25 2000/11/06 04:12:58 geirm Exp $
+ * @version $Id: Parser.java,v 1.26 2000/11/07 21:33:52 geirm Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants
{/*@bgen(jjtree)*/
protected JJTParserState jjtree = new JJTParserState();
@@ -359,7 +359,17 @@
*/
t = jj_consume_token(WORD);
- if( t.image.startsWith("\\"))
+ /*
+ * We need to count the preceeding \'s. If t starts with an odd number of
\'s...
+ */
+
+ int i = 0;
+ int iLen = t.image.length();
+
+ while( i < iLen && t.image.charAt(i) == '\\' )
+ i++;
+
+ if( t.image.startsWith("\\") && (i % 2) != 0 )
{
token_source.stateStackPop();
token_source.inDirective = false;
@@ -367,7 +377,7 @@
}
else
{
- d = (Directive) directives.get(t.image.substring(1));
+ d = (Directive) directives.get(t.image.substring(i+1));
if (d == null)
{
@@ -456,7 +466,7 @@
jjtree.closeNodeScope(jjtn001, true);
}
}
- jj_consume_token(END);
+ EndStatement();
jjtree.closeNodeScope(jjtn000, true);
jjtc000 = false;
{if (true) return jjtn000;}
@@ -900,7 +910,7 @@
jj_la1[19] = jj_gen;
;
}
- jj_consume_token(END);
+ EndStatement();
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
@@ -922,6 +932,20 @@
}
}
+ final public void EndStatement() throws ParseException {
+ /*@bgen(jjtree) EndStatement */
+ ASTEndStatement jjtn000 = new ASTEndStatement(this, JJTENDSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+ try {
+ jj_consume_token(END);
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ }
+ }
+ }
+
final public void ElseStatement() throws ParseException {
/*@bgen(jjtree) ElseStatement */
ASTElseStatement jjtn000 = new ASTElseStatement(this, JJTELSESTATEMENT);
@@ -1794,586 +1818,586 @@
return retval;
}
- final private boolean jj_3R_28() {
- if (jj_scan_token(LPAREN)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_36()) return true;
+ final private boolean jj_3R_62() {
+ if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_scan_token(RPAREN)) return true;
+ if (jj_3R_57()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_33() {
- if (jj_scan_token(LBRACKET)) return true;
+ final private boolean jj_3R_57() {
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_45()) 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;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_60()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
return false;
}
- final private boolean jj_3R_30() {
- if (jj_scan_token(STRING_LITERAL)) return true;
+ final private boolean jj_3R_61() {
+ if (jj_scan_token(LOGICAL_EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_27() {
- if (jj_3R_35()) return true;
+ if (jj_3R_57()) 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;
+ final private boolean jj_3R_58() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_61()) {
+ jj_scanpos = xsp;
+ if (jj_3R_62()) 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_25() {
- if (jj_3R_33()) return true;
+ final private boolean jj_3R_56() {
+ if (jj_scan_token(COMMA)) 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_3R_29()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_23() {
- if (jj_3R_31()) return true;
+ final private boolean jj_3R_54() {
+ if (jj_3R_57()) 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_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
return false;
}
- final private boolean jj_3R_48() {
- if (jj_scan_token(RCURLY)) return true;
+ final private boolean jj_3_2() {
+ if (jj_3R_18()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_31() {
- if (jj_scan_token(NUMBER_LITERAL)) return true;
+ final private boolean jj_3R_55() {
+ if (jj_scan_token(LOGICAL_AND)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_54()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_22() {
- if (jj_3R_30()) return true;
+ 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_56()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
return false;
}
- final private boolean jj_3R_19() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_22()) {
- jj_scanpos = xsp;
- if (jj_3R_23()) {
- jj_scanpos = xsp;
- if (jj_3R_24()) {
- jj_scanpos = xsp;
- if (jj_3R_25()) {
- jj_scanpos = xsp;
- if (jj_3R_26()) {
- jj_scanpos = xsp;
- if (jj_3R_27()) {
- jj_scanpos = xsp;
- if (jj_3R_28()) return true;
+ final private boolean jj_3R_52() {
+ if (jj_3R_54()) 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;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ while (true) {
+ xsp = jj_scanpos;
+ 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_74() {
- if (jj_3R_19()) return true;
+ 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_77() {
- if (jj_scan_token(MODULUS)) return true;
+ final private boolean jj_3R_53() {
+ if (jj_scan_token(LOGICAL_OR)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_69()) return true;
+ if (jj_3R_52()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_73() {
- if (jj_scan_token(LOGICAL_NOT)) 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_3R_69()) return true;
+ if (jj_scan_token(EQUALS)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_69() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_73()) {
- jj_scanpos = xsp;
- if (jj_3R_74()) return true;
+ final private boolean jj_3R_51() {
+ if (jj_3R_52()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else 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_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
return false;
}
- final private boolean jj_3R_76() {
- if (jj_scan_token(DIVIDE)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_69()) return true;
+ 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_75() {
- if (jj_scan_token(MULTIPLY)) return true;
+ final private boolean jj_3R_50() {
+ if (jj_3R_19()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_69()) return true;
+ 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_70() {
+ final private boolean jj_3_1() {
+ if (jj_scan_token(DOT)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_75()) {
- jj_scanpos = xsp;
- if (jj_3R_76()) {
+ if (jj_3_2()) {
jj_scanpos = xsp;
- if (jj_3R_77()) 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;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ xsp = jj_scanpos;
+ if (jj_3R_48()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_72() {
- if (jj_scan_token(MINUS)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_63()) return true;
+ final private boolean jj_3R_44() {
+ if (jj_scan_token(RCURLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_63() {
- if (jj_3R_69()) return true;
+ final private boolean jj_3R_47() {
+ 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_70()) { jj_scanpos = xsp; break; }
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- }
return false;
}
- final private boolean jj_3R_17() {
- if (jj_3R_20()) return true;
+ 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_71() {
- if (jj_scan_token(PLUS)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_63()) return true;
+ final private boolean jj_3R_46() {
+ if (jj_3R_50()) 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_36() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_71()) {
+ if (jj_3R_46()) {
jj_scanpos = xsp;
- if (jj_3R_72()) return true;
+ if (jj_3R_47()) 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_68() {
- if (jj_scan_token(LOGICAL_GE)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_59()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
- final private boolean jj_3R_59() {
- if (jj_3R_63()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ final private boolean jj_3R_32() {
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(IDENTIFIER)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ xsp = jj_scanpos;
+ if (jj_3R_44()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_64()) { jj_scanpos = xsp; break; }
+ if (jj_3_1()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_67() {
- if (jj_scan_token(LOGICAL_LE)) return true;
+ final private boolean jj_3R_49() {
+ if (jj_scan_token(COMMA)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_59()) 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_66() {
- if (jj_scan_token(LOGICAL_GT)) return true;
+ final private boolean jj_3R_18() {
+ if (jj_3R_20()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_59()) return true;
+ if (jj_scan_token(LPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_65() {
- if (jj_scan_token(LOGICAL_LT)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_59()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_60() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_65()) {
- jj_scanpos = xsp;
- if (jj_3R_66()) {
- jj_scanpos = xsp;
- if (jj_3R_67()) {
- jj_scanpos = xsp;
- if (jj_3R_68()) return true;
+ if (jj_3R_21()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(REFMOD2_RPAREN)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } 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_56() {
- if (jj_scan_token(COMMA)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_29()) return true;
+ final private boolean jj_3R_42() {
+ if (jj_3R_31()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_62() {
- if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_57()) return true;
+ 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_57() {
- if (jj_3R_59()) return true;
+ final private boolean jj_3R_45() {
+ 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_60()) { jj_scanpos = xsp; break; }
+ if (jj_3R_49()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_61() {
- if (jj_scan_token(LOGICAL_EQUALS)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_57()) return true;
+ final private boolean jj_3R_40() {
+ if (jj_3R_35()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_58() {
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_61()) {
- jj_scanpos = xsp;
- if (jj_3R_62()) return true;
+ final private boolean jj_3R_39() {
+ if (jj_3R_34()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3_2() {
- 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_54() {
- if (jj_3R_57()) return true;
+ final private boolean jj_3R_37() {
+ if (jj_3R_30()) 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_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;
+ final private boolean jj_3R_29() {
Token xsp;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3R_56()) { jj_scanpos = xsp; break; }
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- }
+ 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()) {
+ jj_scanpos = xsp;
+ if (jj_3R_42()) 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;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_55() {
- if (jj_scan_token(LOGICAL_AND)) 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;
- if (jj_3R_54()) 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_35() {
- if (jj_scan_token(FALSE)) 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;
return false;
}
- final private boolean jj_3R_52() {
- if (jj_3R_54()) return true;
+ final private boolean jj_3R_27() {
+ if (jj_3R_35()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- Token xsp;
- while (true) {
- xsp = jj_scanpos;
- 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_34() {
- if (jj_scan_token(TRUE)) return true;
+ 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_53() {
- if (jj_scan_token(LOGICAL_OR)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_52()) return true;
+ 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_3_3() {
- if (jj_3R_19()) return true;
+ final private boolean jj_3R_24() {
+ if (jj_3R_32()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_scan_token(EQUALS)) return true;
+ return false;
+ }
+
+ final private boolean jj_3R_23() {
+ if (jj_3R_31()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_51() {
- if (jj_3R_52()) return true;
+ 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;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3R_53()) { jj_scanpos = xsp; break; }
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- }
+ xsp = jj_scanpos;
+ if (jj_3R_45()) 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_3_1() {
- if (jj_scan_token(DOT)) 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_19() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3_2()) {
+ if (jj_3R_22()) {
jj_scanpos = xsp;
- if (jj_3R_17()) return true;
+ if (jj_3R_23()) {
+ jj_scanpos = xsp;
+ if (jj_3R_24()) {
+ jj_scanpos = xsp;
+ if (jj_3R_25()) {
+ jj_scanpos = xsp;
+ if (jj_3R_26()) {
+ jj_scanpos = xsp;
+ 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;
- xsp = jj_scanpos;
- if (jj_3R_48()) jj_scanpos = xsp;
- 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;
+ } 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_44() {
- if (jj_scan_token(RCURLY)) return true;
+ final private boolean jj_3R_74() {
+ if (jj_3R_19()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_50() {
- 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;
+ final private boolean jj_3R_48() {
+ if (jj_scan_token(RCURLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_43() {
- if (jj_scan_token(LCURLY)) return true;
+ final private boolean jj_3R_77() {
+ if (jj_scan_token(MODULUS)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_69()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_32() {
- 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(IDENTIFIER)) return true;
+ final private boolean jj_3R_73() {
+ if (jj_scan_token(LOGICAL_NOT)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- xsp = jj_scanpos;
- if (jj_3R_44()) jj_scanpos = xsp;
- else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- while (true) {
- xsp = jj_scanpos;
- if (jj_3_1()) { jj_scanpos = xsp; break; }
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- }
+ if (jj_3R_69()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_47() {
- if (jj_3R_51()) return true;
+ final private boolean jj_3R_69() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_73()) {
+ jj_scanpos = xsp;
+ if (jj_3R_74()) 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_49() {
- if (jj_scan_token(COMMA)) return true;
+ final private boolean jj_3R_76() {
+ if (jj_scan_token(DIVIDE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_29()) return true;
+ if (jj_3R_69()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_46() {
- if (jj_3R_50()) return true;
+ final private boolean jj_3R_75() {
+ if (jj_scan_token(MULTIPLY)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_69()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_36() {
+ final private boolean jj_3R_70() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_46()) {
+ if (jj_3R_75()) {
jj_scanpos = xsp;
- if (jj_3R_47()) return true;
+ if (jj_3R_76()) {
+ jj_scanpos = xsp;
+ if (jj_3R_77()) 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_18() {
- if (jj_3R_20()) 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;
- if (jj_scan_token(LPAREN)) return true;
+ return false;
+ }
+
+ 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_72() {
+ if (jj_scan_token(MINUS)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_63()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_63() {
+ if (jj_3R_69()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_21()) jj_scanpos = xsp;
- else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_scan_token(REFMOD2_RPAREN)) return true;
+ while (true) {
+ xsp = jj_scanpos;
+ if (jj_3R_70()) { jj_scanpos = xsp; break; }
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ }
+ return false;
+ }
+
+ final private boolean jj_3R_71() {
+ if (jj_scan_token(PLUS)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_63()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_20() {
- if (jj_scan_token(IDENTIFIER)) return true;
+ final private boolean jj_3R_64() {
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_71()) {
+ jj_scanpos = xsp;
+ if (jj_3R_72()) 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_42() {
- if (jj_3R_31()) return true;
+ final private boolean jj_3R_17() {
+ if (jj_3R_20()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_41() {
- if (jj_3R_32()) return true;
+ final private boolean jj_3R_68() {
+ if (jj_scan_token(LOGICAL_GE)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_45() {
- if (jj_3R_29()) return true;
+ final private boolean jj_3R_59() {
+ if (jj_3R_63()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
Token xsp;
while (true) {
xsp = jj_scanpos;
- if (jj_3R_49()) { jj_scanpos = xsp; break; }
+ if (jj_3R_64()) { jj_scanpos = xsp; break; }
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
}
return false;
}
- final private boolean jj_3R_40() {
- if (jj_3R_35()) return true;
+ final private boolean jj_3R_67() {
+ if (jj_scan_token(LOGICAL_LE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_39() {
- if (jj_3R_34()) return true;
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_38() {
- if (jj_3R_33()) return true;
+ final private boolean jj_3R_66() {
+ if (jj_scan_token(LOGICAL_GT)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_37() {
- if (jj_3R_30()) return true;
+ final private boolean jj_3R_65() {
+ if (jj_scan_token(LOGICAL_LT)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_59()) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
- final private boolean jj_3R_29() {
+ final private boolean jj_3R_60() {
Token xsp;
xsp = jj_scanpos;
- if (jj_3R_37()) {
- jj_scanpos = xsp;
- if (jj_3R_38()) {
- jj_scanpos = xsp;
- if (jj_3R_39()) {
+ if (jj_3R_65()) {
jj_scanpos = xsp;
- if (jj_3R_40()) {
+ if (jj_3R_66()) {
jj_scanpos = xsp;
- if (jj_3R_41()) {
+ if (jj_3R_67()) {
jj_scanpos = xsp;
- if (jj_3R_42()) return true;
+ if (jj_3R_68()) 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;
} else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
1.26 +85 -22
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.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- Parser.jj 2000/11/06 04:12:58 1.25
+++ Parser.jj 2000/11/07 21:33:54 1.26
@@ -103,7 +103,7 @@
*
* @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
- * @version $Id: Parser.jj,v 1.25 2000/11/06 04:12:58 geirm Exp $
+ * @version $Id: Parser.jj,v 1.26 2000/11/07 21:33:54 geirm Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
{/*@bgen(jjtree)*/
@@ -328,6 +328,14 @@
return;
}
+ /**
+ * Produces a processed output for an escaped control directive
+ */
+ private String escapedDirective( String strImage, String strDirective )
+ {
+ int iLast = strImage.lastIndexOf("\\");
+ return ( strImage.substring(0,iLast/2) + strDirective);
+ }
/**
* handles the dropdown logic when encountering a RPAREN
@@ -466,26 +474,45 @@
/*
* We have to do this, because we want these to be a Text node, and
* whatever follows to be peer to this text in the tree.
- * And we don't want to try an and deal with this w/in the AST.
+ *
+ * We need to touch the ASTs for these, because we want an even # of \'s
+ * to render properly in front of the block
*
* This is really simplistic. I actually would prefer to find them in
* grammatical context, but I am neither smart nor rested, a receipe
* for disaster, another long night with Mr. Parser, or both.
*/
+
+ <ESCAPE_SET_DIRECTIVE : ("\\\\")* "\\#set">
+ {
+ matchedToken.image = escapedDirective( matchedToken.image, "#set");
+ }
+
+| <ESCAPE_IF_DIRECTIVE : ("\\\\")* "\\#if">
+ {
+ matchedToken.image = escapedDirective( matchedToken.image, "#if");
+ }
+
+| <ESCAPE_END_DIRECTIVE : ("\\\\")* "\\#end">
+ {
+ matchedToken.image = escapedDirective( matchedToken.image, "#end");
+ }
+
+| <ESCAPE_ELSEIF_DIRECTIVE: ("\\\\")* "\\#elseif">
+ {
+ matchedToken.image = escapedDirective( matchedToken.image, "#elseif");
+ }
- <ESCAPE_SET_DIRECTIVE : "\\#set">
- { matchedToken.image = "#set"; }
-| <ESCAPE_IF_DIRECTIVE : "\\#if">
- { matchedToken.image = "#if"; }
-| <ESCAPE_END_DIRECTIVE : "\\#end">
- { matchedToken.image = "#end"; }
-| <ESCAPE_ELSEIF_DIRECTIVE: "\\#elseif">
- { matchedToken.image = "#elseif"; }
-| <ESCAPE_ELSE_DIRECTIVE: "\\#else">
- { matchedToken.image = "#else"; }
-| <ESCAPE_STOP_DIRECTIVE: "\\#stop">
- { matchedToken.image = "#stop"; }
+| <ESCAPE_ELSE_DIRECTIVE: ("\\\\")* "\\#else">
+ {
+ matchedToken.image = escapedDirective( matchedToken.image, "#else");
+ }
+| <ESCAPE_STOP_DIRECTIVE: ("\\\\")* "\\#stop">
+ {
+ matchedToken.image = escapedDirective( matchedToken.image, "#stop");
+ }
+
}
@@ -496,7 +523,7 @@
*/
TOKEN:
{
- <SET_DIRECTIVE: (" "|"\t")* "#set" >
+ <SET_DIRECTIVE: (" "|"\t")* ("\\\\")* "#set" >
{
if (! inComment)
{
@@ -519,7 +546,7 @@
* Note : DOLLARBANG is a duplicate of DOLLAR. They must be identical.
*/
- <DOLLAR: ("\\")? "$">
+ <DOLLAR: ("\\")* "$">
{
if (! inComment)
{
@@ -560,7 +587,6 @@
inComment = true;
stateStackPush();
SwitchTo( IN_FORMAL_COMMENT);
- // was : IN_FORMAL_COMMENT
}
| "#*"
@@ -570,7 +596,7 @@
SwitchTo( IN_MULTI_LINE_COMMENT );
}
-| <HASH : ("\\")? "#">
+| <HASH : ("\\")* "#" >
{
if (! inComment)
{
@@ -1051,7 +1077,17 @@
t = <WORD>
{
- if( t.image.startsWith("\\"))
+ /*
+ * We need to count the preceeding \'s. If t starts with an odd number of
\'s...
+ */
+
+ int i = 0;
+ int iLen = t.image.length();
+
+ while( i < iLen && t.image.charAt(i) == '\\' )
+ i++;
+
+ if( t.image.startsWith("\\") && (i % 2) != 0 )
{
token_source.stateStackPop();
token_source.inDirective = false;
@@ -1059,7 +1095,7 @@
}
else
{
- d = (Directive) directives.get(t.image.substring(1));
+ d = (Directive) directives.get(t.image.substring(i+1));
if (d == null)
{
@@ -1114,7 +1150,7 @@
}
}
/*@egen*/
- <END>/*@bgen(jjtree)*/
+ EndStatement()/*@bgen(jjtree)*/
{
jjtree.closeNodeScope(jjtn000, true);
jjtc000 = false;
@@ -1380,7 +1416,7 @@
/*@egen*/
[ LOOKAHEAD(1) ( ElseIfStatement() )+ ]
[ LOOKAHEAD(1) ElseStatement() ]
- <END>/*@bgen(jjtree)*/
+ EndStatement()/*@bgen(jjtree)*/
} catch (Throwable jjte000) {
if (jjtc000) {
jjtree.clearNodeScope(jjtn000);
@@ -1403,6 +1439,23 @@
/*@egen*/
}
+void EndStatement() : {/*@bgen(jjtree) EndStatement */
+ ASTEndStatement jjtn000 = new ASTEndStatement(this, JJTENDSTATEMENT);
+ boolean jjtc000 = true;
+ jjtree.openNodeScope(jjtn000);
+/*@egen*/}
+{/*@bgen(jjtree) EndStatement */
+ try {
+/*@egen*/
+ <END>/*@bgen(jjtree)*/
+ } finally {
+ if (jjtc000) {
+ jjtree.closeNodeScope(jjtn000, true);
+ }
+ }
+/*@egen*/
+}
+
void ElseStatement() : {/*@bgen(jjtree) ElseStatement */
ASTElseStatement jjtn000 = new ASTElseStatement(this, JJTELSESTATEMENT);
boolean jjtc000 = true;
@@ -2133,6 +2186,10 @@
----------------
The escape processing in VTL is very simple. The '\' character acts only as an
escape when :
+ 1) On or more touch a VTL element.
+
+ A VTL element is either :
+
1) It preceeds a reference that is in the context.
2) It preceeds a defined directive (#set, #if, #end, etc) or a valid
pluggable directive,
@@ -2148,6 +2205,12 @@
would output
$foo $bar \$woogie
+
+ Further, you can stack them and they affect left to right, just like convention
escape characters in other languages.
+
+ \$foo = $foo
+ \\$foo = \<foo>
+ \\\$foo = \$foo
What You Expect
1.13 +6 -6
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.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- ParserConstants.java 2000/11/06 04:12:59 1.12
+++ ParserConstants.java 2000/11/07 21:33:56 1.13
@@ -81,12 +81,12 @@
"\"(\"",
"<RPAREN>",
"\")\"",
- "\"\\\\#set\"",
- "\"\\\\#if\"",
- "\"\\\\#end\"",
- "\"\\\\#elseif\"",
- "\"\\\\#else\"",
- "\"\\\\#stop\"",
+ "<ESCAPE_SET_DIRECTIVE>",
+ "<ESCAPE_IF_DIRECTIVE>",
+ "<ESCAPE_END_DIRECTIVE>",
+ "<ESCAPE_ELSEIF_DIRECTIVE>",
+ "<ESCAPE_ELSE_DIRECTIVE>",
+ "<ESCAPE_STOP_DIRECTIVE>",
"<SET_DIRECTIVE>",
"<DOLLAR>",
"\"$!\"",
1.24 +393 -322
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.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- ParserTokenManager.java 2000/11/06 04:12:59 1.23
+++ ParserTokenManager.java 2000/11/07 21:33:59 1.24
@@ -135,6 +135,14 @@
return;
}
+ /**
+ * Produces a processed output for an escaped control directive
+ */
+ private String escapedDirective( String strImage, String strDirective )
+ {
+ int iLast = strImage.lastIndexOf("\\");
+ return ( strImage.substring(0,iLast/2) + strDirective);
+ }
/**
* handles the dropdown logic when encountering a RPAREN
@@ -465,7 +473,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 20;
+ jjnewStateCnt = 22;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -605,14 +613,14 @@
jjCheckNAdd(18);
}
else if (curChar == 92)
- jjAddStates(3, 4);
+ jjCheckNAddStates(3, 6);
break;
case 7:
if (kind > 17)
kind = 17;
break;
case 12:
- jjAddStates(5, 6);
+ jjAddStates(7, 8);
break;
case 18:
if ((0x7fffffe07fffffeL & l) == 0L)
@@ -623,8 +631,16 @@
break;
case 19:
if (curChar == 92)
- jjAddStates(3, 4);
+ jjCheckNAddStates(3, 6);
break;
+ case 20:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(20, 5);
+ break;
+ case 21:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(21, 10);
+ break;
default : break;
}
} while(i != startsAt);
@@ -643,7 +659,7 @@
break;
case 12:
if ((jjbitVec0[i2] & l2) != 0L)
- jjAddStates(5, 6);
+ jjAddStates(7, 8);
break;
default : break;
}
@@ -656,7 +672,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 20 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 22 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -740,7 +756,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 7;
+ jjnewStateCnt = 9;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -802,12 +818,20 @@
{
case 4:
if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(9, 12);
break;
case 2:
if (kind > 17)
kind = 17;
break;
+ case 7:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(7, 0);
+ break;
+ case 8:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(8, 5);
+ break;
default : break;
}
} while(i != startsAt);
@@ -835,7 +859,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -1031,7 +1055,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 14;
+ jjnewStateCnt = 16;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -1126,14 +1150,14 @@
jjCheckNAdd(10);
}
else if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(13, 16);
break;
case 2:
if (kind > 17)
kind = 17;
break;
case 7:
- jjAddStates(9, 10);
+ jjAddStates(17, 18);
break;
case 9:
if ((0x7fffffe07fffffeL & l) == 0L)
@@ -1155,7 +1179,15 @@
break;
case 13:
if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(13, 16);
+ break;
+ case 14:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(14, 0);
+ break;
+ case 15:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(15, 5);
break;
default : break;
}
@@ -1175,7 +1207,7 @@
break;
case 7:
if ((jjbitVec0[i2] & l2) != 0L)
- jjAddStates(9, 10);
+ jjAddStates(17, 18);
break;
default : break;
}
@@ -1188,7 +1220,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 14 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 16 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -1390,7 +1422,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 14;
+ jjnewStateCnt = 16;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -1485,14 +1517,14 @@
jjCheckNAdd(10);
}
else if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(13, 16);
break;
case 2:
if (kind > 17)
kind = 17;
break;
case 7:
- jjAddStates(9, 10);
+ jjAddStates(17, 18);
break;
case 9:
if ((0x7fffffe07fffffeL & l) == 0L)
@@ -1514,7 +1546,15 @@
break;
case 13:
if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(13, 16);
+ break;
+ case 14:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(14, 0);
+ break;
+ case 15:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(15, 5);
break;
default : break;
}
@@ -1534,7 +1574,7 @@
break;
case 7:
if ((jjbitVec0[i2] & l2) != 0L)
- jjAddStates(9, 10);
+ jjAddStates(17, 18);
break;
default : break;
}
@@ -1547,7 +1587,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 14 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 16 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -1631,7 +1671,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 7;
+ jjnewStateCnt = 9;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -1693,12 +1733,20 @@
{
case 4:
if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(9, 12);
break;
case 2:
if (kind > 17)
kind = 17;
break;
+ case 7:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(7, 0);
+ break;
+ case 8:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(8, 5);
+ break;
default : break;
}
} while(i != startsAt);
@@ -1726,7 +1774,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 7 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -1930,7 +1978,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 15;
+ jjnewStateCnt = 17;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -2038,14 +2086,14 @@
jjCheckNAdd(11);
}
else if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(19, 22);
break;
case 2:
if (kind > 17)
kind = 17;
break;
case 7:
- jjAddStates(9, 10);
+ jjAddStates(17, 18);
break;
case 10:
if ((0x7fffffe07fffffeL & l) == 0L)
@@ -2067,8 +2115,16 @@
break;
case 14:
if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(19, 22);
+ break;
+ case 15:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(15, 0);
break;
+ case 16:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(16, 5);
+ break;
default : break;
}
} while(i != startsAt);
@@ -2087,7 +2143,7 @@
break;
case 7:
if ((jjbitVec0[i2] & l2) != 0L)
- jjAddStates(9, 10);
+ jjAddStates(17, 18);
break;
default : break;
}
@@ -2100,7 +2156,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 15 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 17 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -2180,7 +2236,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 10;
+ jjnewStateCnt = 12;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -2261,12 +2317,20 @@
{
case 4:
if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(23, 26);
break;
case 2:
if (kind > 17)
kind = 17;
break;
+ case 10:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(10, 0);
+ break;
+ case 11:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(11, 5);
+ break;
default : break;
}
} while(i != startsAt);
@@ -2294,7 +2358,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 10 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 12 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -2524,7 +2588,7 @@
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 16;
+ jjnewStateCnt = 18;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -2581,7 +2645,7 @@
break;
case 7:
if ((0x100000200L & l) != 0L)
- jjAddStates(11, 13);
+ jjAddStates(27, 29);
break;
case 8:
if ((0x2400L & l) != 0L && kind > 47)
@@ -2631,7 +2695,7 @@
jjCheckNAdd(14);
}
else if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(30, 33);
if (curChar == 101)
jjstateSet[jjnewStateCnt++] = 11;
break;
@@ -2644,7 +2708,7 @@
break;
if (kind > 47)
kind = 47;
- jjAddStates(11, 13);
+ jjAddStates(27, 29);
break;
case 12:
if (curChar == 101)
@@ -2659,8 +2723,16 @@
break;
case 15:
if (curChar == 92)
- jjAddStates(7, 8);
+ jjCheckNAddStates(30, 33);
break;
+ case 16:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(16, 0);
+ break;
+ case 17:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(17, 5);
+ break;
default : break;
}
} while(i != startsAt);
@@ -2688,7 +2760,7 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 16 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 18 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
@@ -2699,93 +2771,19 @@
switch (pos)
{
case 0:
- if ((active0 & 0x50000L) != 0L)
- {
- jjmatchedKind = 19;
- return 11;
- }
- if ((active0 & 0x101f80L) != 0L)
- return 13;
+ if ((active0 & 0x100000L) != 0L)
+ return 58;
if ((active0 & 0x8000L) != 0L)
{
jjmatchedKind = 14;
return -1;
}
- return -1;
- case 1:
- if ((active0 & 0x40000L) != 0L)
- return 9;
- if ((active0 & 0x1f80L) != 0L)
+ if ((active0 & 0x50000L) != 0L)
{
jjmatchedKind = 19;
- jjmatchedPos = 1;
- return -1;
- }
- if ((active0 & 0x8000L) != 0L)
- {
- if (jjmatchedPos == 0)
- {
- jjmatchedKind = 14;
- jjmatchedPos = 0;
- }
- return -1;
- }
- return -1;
- case 2:
- if ((active0 & 0x1f80L) != 0L)
- {
- if (jjmatchedPos < 1)
- {
- jjmatchedKind = 19;
- jjmatchedPos = 1;
- }
- return -1;
+ return 54;
}
return -1;
- case 3:
- if ((active0 & 0x1f80L) != 0L)
- {
- if (jjmatchedPos < 1)
- {
- jjmatchedKind = 19;
- jjmatchedPos = 1;
- }
- return -1;
- }
- return -1;
- case 4:
- if ((active0 & 0x1e80L) != 0L)
- {
- if (jjmatchedPos < 1)
- {
- jjmatchedKind = 19;
- jjmatchedPos = 1;
- }
- return -1;
- }
- return -1;
- case 5:
- if ((active0 & 0x1c00L) != 0L)
- {
- if (jjmatchedPos < 1)
- {
- jjmatchedKind = 19;
- jjmatchedPos = 1;
- }
- return -1;
- }
- return -1;
- case 6:
- if ((active0 & 0x400L) != 0L)
- {
- if (jjmatchedPos < 1)
- {
- jjmatchedKind = 19;
- jjmatchedPos = 1;
- }
- return -1;
- }
- return -1;
default :
return -1;
}
@@ -2811,10 +2809,9 @@
case 36:
return jjMoveStringLiteralDfa1_3(0x8000L);
case 92:
- jjmatchedKind = 20;
- return jjMoveStringLiteralDfa1_3(0x1f80L);
+ return jjStartNfaWithStates_3(0, 20, 58);
default :
- return jjMoveNfa_3(8, 0);
+ return jjMoveNfa_3(10, 0);
}
}
private final int jjMoveStringLiteralDfa1_3(long active0)
@@ -2833,164 +2830,21 @@
case 35:
if ((active0 & 0x10000L) != 0L)
return jjStopAtPos(1, 16);
- return jjMoveStringLiteralDfa2_3(active0, 0x1f80L);
+ break;
case 42:
if ((active0 & 0x40000L) != 0L)
- return jjStartNfaWithStates_3(1, 18, 9);
+ return jjStartNfaWithStates_3(1, 18, 52);
break;
default :
break;
}
return jjStartNfa_3(0, active0);
}
-private final int jjMoveStringLiteralDfa2_3(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_3(0, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_3(1, active0);
- return 2;
- }
- switch(curChar)
- {
- case 101:
- return jjMoveStringLiteralDfa3_3(active0, 0xe00L);
- case 105:
- return jjMoveStringLiteralDfa3_3(active0, 0x100L);
- case 115:
- return jjMoveStringLiteralDfa3_3(active0, 0x1080L);
- default :
- break;
- }
- return jjStartNfa_3(1, active0);
-}
-private final int jjMoveStringLiteralDfa3_3(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_3(1, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_3(2, active0);
- return 3;
- }
- switch(curChar)
- {
- case 101:
- return jjMoveStringLiteralDfa4_3(active0, 0x80L);
- case 102:
- if ((active0 & 0x100L) != 0L)
- return jjStopAtPos(3, 8);
- break;
- case 108:
- return jjMoveStringLiteralDfa4_3(active0, 0xc00L);
- case 110:
- return jjMoveStringLiteralDfa4_3(active0, 0x200L);
- case 116:
- return jjMoveStringLiteralDfa4_3(active0, 0x1000L);
- default :
- break;
- }
- return jjStartNfa_3(2, active0);
-}
-private final int jjMoveStringLiteralDfa4_3(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_3(2, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_3(3, active0);
- return 4;
- }
- switch(curChar)
- {
- case 100:
- if ((active0 & 0x200L) != 0L)
- return jjStopAtPos(4, 9);
- break;
- case 111:
- return jjMoveStringLiteralDfa5_3(active0, 0x1000L);
- case 115:
- return jjMoveStringLiteralDfa5_3(active0, 0xc00L);
- case 116:
- if ((active0 & 0x80L) != 0L)
- return jjStopAtPos(4, 7);
- break;
- default :
- break;
- }
- return jjStartNfa_3(3, active0);
-}
-private final int jjMoveStringLiteralDfa5_3(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_3(3, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_3(4, active0);
- return 5;
- }
- switch(curChar)
- {
- case 101:
- if ((active0 & 0x800L) != 0L)
- {
- jjmatchedKind = 11;
- jjmatchedPos = 5;
- }
- return jjMoveStringLiteralDfa6_3(active0, 0x400L);
- case 112:
- if ((active0 & 0x1000L) != 0L)
- return jjStopAtPos(5, 12);
- break;
- default :
- break;
- }
- return jjStartNfa_3(4, active0);
-}
-private final int jjMoveStringLiteralDfa6_3(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_3(4, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_3(5, active0);
- return 6;
- }
- switch(curChar)
- {
- case 105:
- return jjMoveStringLiteralDfa7_3(active0, 0x400L);
- default :
- break;
- }
- return jjStartNfa_3(5, active0);
-}
-private final int jjMoveStringLiteralDfa7_3(long old0, long active0)
-{
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_3(5, old0);
- try { curChar = input_stream.readChar(); }
- catch(java.io.IOException e) {
- jjStopStringLiteralDfa_3(6, active0);
- return 7;
- }
- switch(curChar)
- {
- case 102:
- if ((active0 & 0x400L) != 0L)
- return jjStopAtPos(7, 10);
- break;
- default :
- break;
- }
- return jjStartNfa_3(6, active0);
-}
private final int jjMoveNfa_3(int startState, int curPos)
{
int[] nextStates;
int startsAt = 0;
- jjnewStateCnt = 13;
+ jjnewStateCnt = 58;
int i = 1;
jjstateSet[0] = startState;
int j, kind = 0x7fffffff;
@@ -3005,72 +2859,112 @@
{
switch(jjstateSet[--i])
{
- case 11:
+ case 54:
if (curChar == 42)
- jjstateSet[jjnewStateCnt++] = 9;
- break;
- case 13:
- if (curChar == 35)
- {
- if (kind > 19)
- kind = 19;
- }
- else if (curChar == 36)
- {
- if (kind > 14)
- kind = 14;
- }
+ jjstateSet[jjnewStateCnt++] = 52;
break;
- case 8:
+ case 10:
if ((0xffffffe7ffffffffL & l) != 0L)
{
if (kind > 21)
kind = 21;
- jjCheckNAdd(7);
+ jjCheckNAdd(9);
}
else if (curChar == 35)
- jjCheckNAddTwoStates(3, 11);
+ jjCheckNAddTwoStates(5, 54);
else if (curChar == 36)
{
if (kind > 14)
kind = 14;
}
if ((0x100000200L & l) != 0L)
- jjCheckNAddTwoStates(0, 4);
+ jjCheckNAddStates(34, 36);
else if (curChar == 35)
{
if (kind > 19)
kind = 19;
}
break;
+ case 58:
+ if (curChar == 35)
+ {
+ if (kind > 19)
+ kind = 19;
+ }
+ else if (curChar == 36)
+ {
+ if (kind > 14)
+ kind = 14;
+ }
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 49;
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 42;
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 35;
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 26;
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 20;
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 15;
+ break;
case 0:
if ((0x100000200L & l) != 0L)
- jjCheckNAddTwoStates(0, 4);
+ jjCheckNAddStates(34, 36);
break;
- case 4:
+ case 6:
if (curChar == 35)
- jjCheckNAdd(3);
+ jjCheckNAdd(5);
break;
- case 5:
+ case 7:
if (curChar == 36 && kind > 14)
kind = 14;
break;
- case 6:
+ case 8:
if (curChar == 35 && kind > 19)
kind = 19;
break;
- case 7:
+ case 9:
if ((0xffffffe7ffffffffL & l) == 0L)
break;
if (kind > 21)
kind = 21;
- jjCheckNAdd(7);
+ jjCheckNAdd(9);
break;
- case 9:
+ case 16:
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 15;
+ break;
+ case 21:
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 20;
+ break;
+ case 27:
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 26;
+ break;
+ case 36:
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 35;
+ break;
+ case 43:
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 42;
+ break;
+ case 50:
+ if (curChar == 35)
+ jjstateSet[jjnewStateCnt++] = 49;
+ break;
+ case 51:
+ if (curChar == 35)
+ jjCheckNAddTwoStates(5, 54);
+ break;
+ case 52:
if (curChar == 42)
- jjstateSet[jjnewStateCnt++] = 10;
+ jjstateSet[jjnewStateCnt++] = 53;
break;
- case 10:
+ case 53:
if ((0xfffffff7ffffffffL & l) != 0L && kind > 17)
kind = 17;
break;
@@ -3085,43 +2979,217 @@
{
switch(jjstateSet[--i])
{
- case 11:
- case 3:
+ case 54:
+ case 5:
if (curChar == 115)
- jjstateSet[jjnewStateCnt++] = 2;
+ jjstateSet[jjnewStateCnt++] = 4;
break;
- case 8:
+ case 10:
if ((0xffffffffefffffffL & l) != 0L)
{
if (kind > 21)
kind = 21;
- jjCheckNAdd(7);
+ jjCheckNAdd(9);
}
else if (curChar == 92)
- jjAddStates(14, 15);
+ jjCheckNAddStates(37, 40);
+ if (curChar == 92)
+ jjCheckNAddStates(41, 53);
+ break;
+ case 58:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(57, 8);
+ if (curChar == 92)
+ jjCheckNAddTwoStates(56, 7);
+ if (curChar == 92)
+ jjAddStates(54, 55);
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 45;
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 38;
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 29;
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 23;
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 18;
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 12;
break;
case 1:
+ if (curChar == 92)
+ jjAddStates(54, 55);
+ break;
+ case 2:
+ if (curChar == 92)
+ jjCheckNAdd(1);
+ break;
+ case 3:
if (curChar == 116 && kind > 13)
kind = 13;
break;
- case 2:
+ case 4:
if (curChar == 101)
- jjstateSet[jjnewStateCnt++] = 1;
+ jjstateSet[jjnewStateCnt++] = 3;
break;
- case 7:
+ case 9:
if ((0xffffffffefffffffL & l) == 0L)
break;
if (kind > 21)
kind = 21;
- jjCheckNAdd(7);
+ jjCheckNAdd(9);
break;
- case 10:
+ case 11:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 12;
+ break;
+ case 12:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(11, 16);
+ break;
+ case 13:
+ if (curChar == 116 && kind > 7)
+ kind = 7;
+ break;
+ case 14:
+ if (curChar == 101)
+ jjstateSet[jjnewStateCnt++] = 13;
+ break;
+ case 15:
+ if (curChar == 115)
+ jjstateSet[jjnewStateCnt++] = 14;
+ break;
+ case 17:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 18;
+ break;
+ case 18:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(17, 21);
+ break;
+ case 19:
+ if (curChar == 102 && kind > 8)
+ kind = 8;
+ break;
+ case 20:
+ if (curChar == 105)
+ jjstateSet[jjnewStateCnt++] = 19;
+ break;
+ case 22:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 23;
+ break;
+ case 23:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(22, 27);
+ break;
+ case 24:
+ if (curChar == 100 && kind > 9)
+ kind = 9;
+ break;
+ case 25:
+ if (curChar == 110)
+ jjstateSet[jjnewStateCnt++] = 24;
+ break;
+ case 26:
+ if (curChar == 101)
+ jjstateSet[jjnewStateCnt++] = 25;
+ break;
+ case 28:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 29;
+ break;
+ case 29:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(28, 36);
+ break;
+ case 30:
+ if (curChar == 102 && kind > 10)
+ kind = 10;
+ break;
+ case 31:
+ if (curChar == 105)
+ jjstateSet[jjnewStateCnt++] = 30;
+ break;
+ case 32:
+ if (curChar == 101)
+ jjstateSet[jjnewStateCnt++] = 31;
+ break;
+ case 33:
+ if (curChar == 115)
+ jjstateSet[jjnewStateCnt++] = 32;
+ break;
+ case 34:
+ if (curChar == 108)
+ jjstateSet[jjnewStateCnt++] = 33;
+ break;
+ case 35:
+ if (curChar == 101)
+ jjstateSet[jjnewStateCnt++] = 34;
+ break;
+ case 37:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 38;
+ break;
+ case 38:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(37, 43);
+ break;
+ case 39:
+ if (curChar == 101 && kind > 11)
+ kind = 11;
+ break;
+ case 40:
+ if (curChar == 115)
+ jjstateSet[jjnewStateCnt++] = 39;
+ break;
+ case 41:
+ if (curChar == 108)
+ jjstateSet[jjnewStateCnt++] = 40;
+ break;
+ case 42:
+ if (curChar == 101)
+ jjstateSet[jjnewStateCnt++] = 41;
+ break;
+ case 44:
+ if (curChar == 92)
+ jjstateSet[jjnewStateCnt++] = 45;
+ break;
+ case 45:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(44, 50);
+ break;
+ case 46:
+ if (curChar == 112 && kind > 12)
+ kind = 12;
+ break;
+ case 47:
+ if (curChar == 111)
+ jjstateSet[jjnewStateCnt++] = 46;
+ break;
+ case 48:
+ if (curChar == 116)
+ jjstateSet[jjnewStateCnt++] = 47;
+ break;
+ case 49:
+ if (curChar == 115)
+ jjstateSet[jjnewStateCnt++] = 48;
+ break;
+ case 53:
if (kind > 17)
kind = 17;
break;
- case 12:
+ case 55:
+ if (curChar == 92)
+ jjCheckNAddStates(37, 40);
+ break;
+ case 56:
+ if (curChar == 92)
+ jjCheckNAddTwoStates(56, 7);
+ break;
+ case 57:
if (curChar == 92)
- jjAddStates(14, 15);
+ jjCheckNAddTwoStates(57, 8);
break;
default : break;
}
@@ -3135,15 +3203,15 @@
{
switch(jjstateSet[--i])
{
- case 8:
- case 7:
+ case 10:
+ case 9:
if ((jjbitVec0[i2] & l2) == 0L)
break;
if (kind > 21)
kind = 21;
- jjCheckNAdd(7);
+ jjCheckNAdd(9);
break;
- case 10:
+ case 53:
if ((jjbitVec0[i2] & l2) != 0L && kind > 17)
kind = 17;
break;
@@ -3158,14 +3226,17 @@
kind = 0x7fffffff;
}
++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 13 - (jjnewStateCnt = startsAt)))
+ if ((i = jjnewStateCnt) == (startsAt = 58 - (jjnewStateCnt = startsAt)))
return curPos;
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) { return curPos; }
}
}
static final int[] jjnextStates = {
- 1, 2, 4, 5, 10, 12, 13, 0, 5, 7, 8, 7, 8, 10, 5, 6,
+ 1, 2, 4, 20, 5, 21, 10, 12, 13, 7, 0, 8, 5, 14, 0, 15,
+ 5, 7, 8, 15, 0, 16, 5, 10, 0, 11, 5, 7, 8, 10, 16, 0,
+ 17, 5, 0, 2, 6, 56, 7, 57, 8, 11, 16, 17, 21, 22, 27, 28,
+ 36, 37, 43, 44, 50, 1, 2, 6,
};
public static final String[] jjstrLiteralImages = {
null, null, null, null, null, null, null, null, null, null, null, null, null,
@@ -3202,8 +3273,8 @@
0x20fc000L, 0x0L,
};
private ASCII_CharStream input_stream;
-private final int[] jjrounds = new int[20];
-private final int[] jjstateSet = new int[40];
+private final int[] jjrounds = new int[58];
+private final int[] jjstateSet = new int[116];
StringBuffer image;
int jjimageLen;
int lengthOfMatch;
@@ -3230,7 +3301,7 @@
{
int i;
jjround = 0x80000001;
- for (i = 20; i-- > 0;)
+ for (i = 58; i-- > 0;)
jjrounds[i] = 0x80000000;
}
public void ReInit(ASCII_CharStream stream, int lexState)
@@ -3620,42 +3691,42 @@
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
- matchedToken.image = "#set";
+ matchedToken.image = escapedDirective( matchedToken.image, "#set");
break;
case 8 :
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))));
- matchedToken.image = "#if";
+ matchedToken.image = escapedDirective( matchedToken.image, "#if");
break;
case 9 :
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))));
- matchedToken.image = "#end";
+ matchedToken.image = escapedDirective( matchedToken.image, "#end");
break;
case 10 :
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))));
- matchedToken.image = "#elseif";
+ matchedToken.image = escapedDirective( matchedToken.image, "#elseif");
break;
case 11 :
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))));
- matchedToken.image = "#else";
+ matchedToken.image = escapedDirective( matchedToken.image, "#else");
break;
case 12 :
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))));
- matchedToken.image = "#stop";
+ matchedToken.image = escapedDirective( matchedToken.image, "#stop");
break;
case 13 :
if (image == null)
1.3 +21 -19
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.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ParserTreeConstants.java 2000/10/03 17:03:16 1.2
+++ ParserTreeConstants.java 2000/11/07 21:34:01 1.3
@@ -20,25 +20,26 @@
public int JJTFALSE = 13;
public int JJTTEXT = 14;
public int JJTIFSTATEMENT = 15;
- public int JJTELSESTATEMENT = 16;
- public int JJTELSEIFSTATEMENT = 17;
- 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 int JJTENDSTATEMENT = 16;
+ public int JJTELSESTATEMENT = 17;
+ public int JJTELSEIFSTATEMENT = 18;
+ public int JJTSETDIRECTIVE = 19;
+ public int JJTEXPRESSION = 20;
+ public int JJTASSIGNMENT = 21;
+ public int JJTORNODE = 22;
+ public int JJTANDNODE = 23;
+ public int JJTEQNODE = 24;
+ public int JJTNENODE = 25;
+ public int JJTLTNODE = 26;
+ public int JJTGTNODE = 27;
+ public int JJTLENODE = 28;
+ public int JJTGENODE = 29;
+ public int JJTADDNODE = 30;
+ public int JJTSUBTRACTNODE = 31;
+ public int JJTMULNODE = 32;
+ public int JJTDIVNODE = 33;
+ public int JJTMODNODE = 34;
+ public int JJTNOTNODE = 35;
public String[] jjtNodeName = {
@@ -58,6 +59,7 @@
"False",
"Text",
"IfStatement",
+ "EndStatement",
"ElseStatement",
"ElseIfStatement",
"SetDirective",