Author: wglass Date: Wed Oct 5 21:25:59 2005 New Revision: 306522 URL: http://svn.apache.org/viewcvs?rev=306522&view=rev Log: fixed bug with parse error when comment was last line of file. VELOCITY-272
Added: jakarta/velocity/core/trunk/test/templates/comment-eof.vm jakarta/velocity/core/trunk/test/templates/compare/comment-eof.cmp Modified: jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.java jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jj jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jjt jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserConstants.java jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java jakarta/velocity/core/trunk/test/templates/templates.properties Modified: jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.java URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.java?rev=306522&r1=306521&r2=306522&view=diff ============================================================================== --- jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.java (original) +++ jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.java Wed Oct 5 21:25:59 2005 @@ -109,12 +109,12 @@ * thrown by the Macro class when something is amiss in the * Macro specification */ - rsvc.getLog().error("Parser Error: #macro() : " + templateName, mee); + rsvc.error ("Parser Error: #macro() : " + templateName + " : " + StringUtils.stackTrace(mee)); throw new ParseException(mee.getMessage()); } catch (ParseException pe) { - rsvc.getLog().error("Parser Exception: " + templateName, pe); + rsvc.error ("Parser Exception: " + templateName + " : " + StringUtils.stackTrace(pe)); throw new ParseException (pe.currentToken, pe.expectedTokenSequences, pe.tokenImage); } @@ -124,7 +124,7 @@ } catch (Exception e) { - rsvc.getLog().error("Parser Error: " + templateName, e); + rsvc.error ("Parser Error: " + templateName + " : " + StringUtils.stackTrace(e)); } currentTemplateName = ""; @@ -231,10 +231,10 @@ case RPAREN: case ESCAPE_DIRECTIVE: case SET_DIRECTIVE: + case SINGLE_LINE_COMMENT_START: case DOUBLE_ESCAPE: case ESCAPE: case TEXT: - case SINGLE_LINE_COMMENT: case FORMAL_COMMENT: case MULTI_LINE_COMMENT: case STRING_LITERAL: @@ -300,7 +300,7 @@ Reference(); } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case SINGLE_LINE_COMMENT: + case SINGLE_LINE_COMMENT_START: case FORMAL_COMMENT: case MULTI_LINE_COMMENT: Comment(); @@ -435,8 +435,16 @@ jjtree.openNodeScope(jjtn000); try { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { - case SINGLE_LINE_COMMENT: - jj_consume_token(SINGLE_LINE_COMMENT); + case SINGLE_LINE_COMMENT_START: + 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[3] = jj_gen; + ; + } break; case MULTI_LINE_COMMENT: jj_consume_token(MULTI_LINE_COMMENT); @@ -445,14 +453,14 @@ jj_consume_token(FORMAL_COMMENT); break; default: - jj_la1[3] = jj_gen; + jj_la1[4] = jj_gen; jj_consume_token(-1); throw new ParseException(); } } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } } } @@ -563,7 +571,7 @@ {if (true) return ParserTreeConstants.JJTINTEGERLITERAL;} break; default: - jj_la1[4] = jj_gen; + jj_la1[5] = jj_gen; if (jj_2_3(2147483647)) { IntegerRange(); {if (true) return ParserTreeConstants.JJTINTEGERRANGE;} @@ -590,7 +598,7 @@ {if (true) return ParserTreeConstants.JJTFALSE;} break; default: - jj_la1[5] = jj_gen; + jj_la1[6] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -623,7 +631,7 @@ t = jj_consume_token(BRACKETED_WORD); break; default: - jj_la1[6] = jj_gen; + jj_la1[7] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -697,7 +705,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[7] = jj_gen; + jj_la1[8] = jj_gen; ; } jj_consume_token(LPAREN); @@ -713,7 +721,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[8] = jj_gen; + jj_la1[9] = jj_gen; ; } argType = DirectiveArg(); @@ -762,7 +770,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[9] = jj_gen; + jj_la1[10] = jj_gen; ; } jj_consume_token(RPAREN); @@ -782,10 +790,10 @@ case RPAREN: case ESCAPE_DIRECTIVE: case SET_DIRECTIVE: + case SINGLE_LINE_COMMENT_START: case DOUBLE_ESCAPE: case ESCAPE: case TEXT: - case SINGLE_LINE_COMMENT: case FORMAL_COMMENT: case MULTI_LINE_COMMENT: case STRING_LITERAL: @@ -802,7 +810,7 @@ ; break; default: - jj_la1[10] = jj_gen; + jj_la1[11] = jj_gen; break label_4; } } @@ -891,7 +899,7 @@ ; break; default: - jj_la1[11] = jj_gen; + jj_la1[12] = jj_gen; break label_5; } jj_consume_token(COMMA); @@ -905,7 +913,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[12] = jj_gen; + jj_la1[13] = jj_gen; ; } } @@ -957,7 +965,7 @@ ; break; default: - jj_la1[13] = jj_gen; + jj_la1[14] = jj_gen; break label_6; } jj_consume_token(COMMA); @@ -965,7 +973,7 @@ } break; default: - jj_la1[14] = jj_gen; + jj_la1[15] = jj_gen; ; } jj_consume_token(RBRACKET); @@ -1007,7 +1015,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[15] = jj_gen; + jj_la1[16] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1019,7 +1027,7 @@ IntegerLiteral(); break; default: - jj_la1[16] = jj_gen; + jj_la1[17] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1028,7 +1036,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[17] = jj_gen; + jj_la1[18] = jj_gen; ; } jj_consume_token(DOUBLEDOT); @@ -1037,7 +1045,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[18] = jj_gen; + jj_la1[19] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1049,7 +1057,7 @@ IntegerLiteral(); break; default: - jj_la1[19] = jj_gen; + jj_la1[20] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1058,7 +1066,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[20] = jj_gen; + jj_la1[21] = jj_gen; ; } jj_consume_token(RBRACKET); @@ -1094,7 +1102,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[21] = jj_gen; + jj_la1[22] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1105,7 +1113,7 @@ IntegerLiteral(); break; default: - jj_la1[22] = jj_gen; + jj_la1[23] = jj_gen; if (jj_2_6(2147483647)) { IntegerRange(); } else { @@ -1130,7 +1138,7 @@ FloatingPointLiteral(); break; default: - jj_la1[23] = jj_gen; + jj_la1[24] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1141,7 +1149,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[24] = jj_gen; + jj_la1[25] = jj_gen; ; } } @@ -1178,7 +1186,7 @@ ; break; default: - jj_la1[25] = jj_gen; + jj_la1[26] = jj_gen; break label_7; } jj_consume_token(COMMA); @@ -1186,7 +1194,7 @@ } break; default: - jj_la1[26] = jj_gen; + jj_la1[27] = jj_gen; ; } jj_consume_token(REFMOD2_RPAREN); @@ -1236,7 +1244,7 @@ Identifier(); break; default: - jj_la1[27] = jj_gen; + jj_la1[28] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1262,7 +1270,7 @@ Identifier(); break; default: - jj_la1[28] = jj_gen; + jj_la1[29] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1271,7 +1279,7 @@ jj_consume_token(RCURLY); break; default: - jj_la1[29] = jj_gen; + jj_la1[30] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1367,7 +1375,7 @@ jj_consume_token(RCURLY); break; default: - jj_la1[30] = jj_gen; + jj_la1[31] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -1395,7 +1403,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[31] = jj_gen; + jj_la1[32] = jj_gen; ; } jj_consume_token(LPAREN); @@ -1412,10 +1420,10 @@ case RPAREN: case ESCAPE_DIRECTIVE: case SET_DIRECTIVE: + case SINGLE_LINE_COMMENT_START: case DOUBLE_ESCAPE: case ESCAPE: case TEXT: - case SINGLE_LINE_COMMENT: case FORMAL_COMMENT: case MULTI_LINE_COMMENT: case STRING_LITERAL: @@ -1432,7 +1440,7 @@ ; break; default: - jj_la1[32] = jj_gen; + jj_la1[33] = jj_gen; break label_10; } Statement(); @@ -1466,13 +1474,13 @@ ; break; default: - jj_la1[33] = jj_gen; + jj_la1[34] = jj_gen; break label_11; } } break; default: - jj_la1[34] = jj_gen; + jj_la1[35] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1480,7 +1488,7 @@ ElseStatement(); break; default: - jj_la1[35] = jj_gen; + jj_la1[36] = jj_gen; ; } jj_consume_token(END); @@ -1523,10 +1531,10 @@ case RPAREN: case ESCAPE_DIRECTIVE: case SET_DIRECTIVE: + case SINGLE_LINE_COMMENT_START: case DOUBLE_ESCAPE: case ESCAPE: case TEXT: - case SINGLE_LINE_COMMENT: case FORMAL_COMMENT: case MULTI_LINE_COMMENT: case STRING_LITERAL: @@ -1543,7 +1551,7 @@ ; break; default: - jj_la1[36] = jj_gen; + jj_la1[37] = jj_gen; break label_12; } Statement(); @@ -1600,7 +1608,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[37] = jj_gen; + jj_la1[38] = jj_gen; ; } jj_consume_token(LPAREN); @@ -1617,10 +1625,10 @@ case RPAREN: case ESCAPE_DIRECTIVE: case SET_DIRECTIVE: + case SINGLE_LINE_COMMENT_START: case DOUBLE_ESCAPE: case ESCAPE: case TEXT: - case SINGLE_LINE_COMMENT: case FORMAL_COMMENT: case MULTI_LINE_COMMENT: case STRING_LITERAL: @@ -1637,7 +1645,7 @@ ; break; default: - jj_la1[38] = jj_gen; + jj_la1[39] = jj_gen; break label_13; } Statement(); @@ -1699,7 +1707,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[39] = jj_gen; + jj_la1[40] = jj_gen; ; } Reference(); @@ -1708,7 +1716,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[40] = jj_gen; + jj_la1[41] = jj_gen; ; } jj_consume_token(EQUALS); @@ -1724,7 +1732,7 @@ jj_consume_token(NEWLINE); break; default: - jj_la1[41] = jj_gen; + jj_la1[42] = jj_gen; ; } } catch (Throwable jjte000) { @@ -1841,7 +1849,7 @@ ; break; default: - jj_la1[42] = jj_gen; + jj_la1[43] = jj_gen; break label_14; } jj_consume_token(LOGICAL_OR); @@ -1881,7 +1889,7 @@ ; break; default: - jj_la1[43] = jj_gen; + jj_la1[44] = jj_gen; break label_15; } jj_consume_token(LOGICAL_AND); @@ -1922,7 +1930,7 @@ ; break; default: - jj_la1[44] = jj_gen; + jj_la1[45] = jj_gen; break label_16; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -1981,7 +1989,7 @@ } break; default: - jj_la1[45] = jj_gen; + jj_la1[46] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2000,7 +2008,7 @@ ; break; default: - jj_la1[46] = jj_gen; + jj_la1[47] = jj_gen; break label_17; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2113,7 +2121,7 @@ } break; default: - jj_la1[47] = jj_gen; + jj_la1[48] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2130,7 +2138,7 @@ ; break; default: - jj_la1[48] = jj_gen; + jj_la1[49] = jj_gen; break label_18; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2189,7 +2197,7 @@ } break; default: - jj_la1[49] = jj_gen; + jj_la1[50] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2207,7 +2215,7 @@ ; break; default: - jj_la1[50] = jj_gen; + jj_la1[51] = jj_gen; break label_19; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2293,7 +2301,7 @@ } break; default: - jj_la1[51] = jj_gen; + jj_la1[52] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2307,7 +2315,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[52] = jj_gen; + jj_la1[53] = jj_gen; ; } jj_consume_token(LOGICAL_NOT); @@ -2351,7 +2359,7 @@ PrimaryExpression(); break; default: - jj_la1[53] = jj_gen; + jj_la1[54] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2364,7 +2372,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[54] = jj_gen; + jj_la1[55] = jj_gen; ; } switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { @@ -2379,7 +2387,7 @@ IntegerLiteral(); break; default: - jj_la1[55] = jj_gen; + jj_la1[56] = jj_gen; if (jj_2_12(2147483647)) { IntegerRange(); } else { @@ -2405,7 +2413,7 @@ jj_consume_token(RPAREN); break; default: - jj_la1[56] = jj_gen; + jj_la1[57] = jj_gen; jj_consume_token(-1); throw new ParseException(); } @@ -2416,7 +2424,7 @@ jj_consume_token(WHITESPACE); break; default: - jj_la1[57] = jj_gen; + jj_la1[58] = jj_gen; ; } } @@ -2505,17 +2513,6 @@ finally { jj_save(11, xla); } } - final private boolean jj_3R_81() { - if (jj_scan_token(COMMA)) return true; - if (jj_3R_24()) return true; - return false; - } - - final private boolean jj_3_8() { - if (jj_3R_28()) return true; - return false; - } - final private boolean jj_3R_25() { if (jj_3R_20()) return true; return false; @@ -3120,6 +3117,17 @@ return false; } + final private boolean jj_3R_81() { + if (jj_scan_token(COMMA)) return true; + if (jj_3R_24()) return true; + return false; + } + + final private boolean jj_3_8() { + if (jj_3R_28()) return true; + return false; + } + public ParserTokenManager token_source; public Token token, jj_nt; private int jj_ntk; @@ -3128,7 +3136,7 @@ public boolean lookingAhead = false; private boolean jj_semLA; private int jj_gen; - final private int[] jj_la1 = new int[58]; + final private int[] jj_la1 = new int[59]; static private int[] jj_la1_0; static private int[] jj_la1_1; static private int[] jj_la1_2; @@ -3138,13 +3146,13 @@ jj_la1_2(); } private static void jj_la1_0() { - jj_la1_0 = new int[] {0x9f81b00,0x0,0x9f81b00,0x1c00000,0x8000000,0x30000042,0x0,0x4000000,0x4000000,0x4000000,0x9f81b00,0x8,0x4000000,0x8,0x3c000042,0x4000000,0x0,0x4000000,0x4000000,0x0,0x4000000,0x4000000,0x8000000,0x30000042,0x4000000,0x8,0x3c000042,0x0,0x0,0x0,0x8300300,0x4000000,0x9f81b00,0x0,0x0,0x0,0x9f81b00,0x4000000,0x9f81b00,0x4000000,0x4000000,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x4000000,0x3c000142,0x4000000,0x8000000,0x30000142,0x4000000,}; + jj_la1_0 = new int[] {0x9bc1b00,0x0,0x9bc1b00,0x400000,0x1840000,0x8000000,0x30000042,0x0,0x4000000,0x4000000,0x4000000,0x9bc1b00,0x8,0x4000000,0x8,0x3c000042,0x4000000,0x0,0x4000000,0x4000000,0x0,0x4000000,0x4000000,0x8000000,0x30000042,0x4000000,0x8,0x3c000042,0x0,0x0,0x0,0x8300300,0x4000000,0x9bc1b00,0x0,0x0,0x0,0x9bc1b00,0x4000000,0x9bc1b00,0x4000000,0x4000000,0x40000000,0x0,0x0,0x0,0x0,0x0,0x0,0x80000000,0x80000000,0x0,0x0,0x4000000,0x3c000142,0x4000000,0x8000000,0x30000142,0x4000000,}; } private static void jj_la1_1() { - jj_la1_1 = new int[] {0xc6348000,0x48000,0x86300000,0x0,0x42100000,0x200000,0x6000000,0x0,0x0,0x0,0xc6348000,0x0,0x0,0x0,0x40300000,0x0,0x40100000,0x0,0x0,0x40100000,0x0,0x0,0x100000,0x40200000,0x0,0x0,0x40300000,0x40000000,0x40000000,0x40000000,0x80300000,0x0,0xc6348000,0x10000,0x10000,0x20000,0xc6348000,0x0,0xc6348000,0x0,0x0,0x0,0x20,0x10,0xc00,0xc00,0x3c0,0x3c0,0x1,0x1,0xe,0xe,0x0,0x40300000,0x0,0x40100000,0x200000,0x0,}; + jj_la1_1 = new int[] {0xc6348000,0x48000,0x86300000,0x0,0x0,0x42100000,0x200000,0x6000000,0x0,0x0,0x0,0xc6348000,0x0,0x0,0x0,0x40300000,0x0,0x40100000,0x0,0x0,0x40100000,0x0,0x0,0x100000,0x40200000,0x0,0x0,0x40300000,0x40000000,0x40000000,0x40000000,0x80300000,0x0,0xc6348000,0x10000,0x10000,0x20000,0xc6348000,0x0,0xc6348000,0x0,0x0,0x0,0x20,0x10,0xc00,0xc00,0x3c0,0x3c0,0x1,0x1,0xe,0xe,0x0,0x40300000,0x0,0x40100000,0x200000,0x0,}; } private static void jj_la1_2() { - jj_la1_2 = new int[] {0x3,0x0,0x3,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x0,0x1,0x3,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,}; + jj_la1_2 = new int[] {0x3,0x0,0x3,0x0,0x0,0x1,0x0,0x0,0x0,0x0,0x0,0x3,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,0x1,0x0,0x0,0x0,0x1,0x0,0x0,0x1,0x0,0x0,0x1,0x3,0x0,0x3,0x0,0x0,0x0,0x3,0x0,0x3,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x0,0x0,}; } final private JJCalls[] jj_2_rtns = new JJCalls[12]; private boolean jj_rescan = false; @@ -3155,7 +3163,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 58; i++) jj_la1[i] = -1; + for (int i = 0; i < 59; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -3165,7 +3173,7 @@ jj_ntk = -1; jjtree.reset(); jj_gen = 0; - for (int i = 0; i < 58; i++) jj_la1[i] = -1; + for (int i = 0; i < 59; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -3174,7 +3182,7 @@ token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 58; i++) jj_la1[i] = -1; + for (int i = 0; i < 59; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -3184,7 +3192,7 @@ jj_ntk = -1; jjtree.reset(); jj_gen = 0; - for (int i = 0; i < 58; i++) jj_la1[i] = -1; + for (int i = 0; i < 59; i++) jj_la1[i] = -1; for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls(); } @@ -3303,7 +3311,7 @@ la1tokens[jj_kind] = true; jj_kind = -1; } - for (int i = 0; i < 58; i++) { + for (int i = 0; i < 59; i++) { if (jj_la1[i] == jj_gen) { for (int j = 0; j < 32; j++) { if ((jj_la1_0[i] & (1<<j)) != 0) { Modified: jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jj URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jj?rev=306522&r1=306521&r2=306522&view=diff ============================================================================== --- jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jj (original) +++ jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jj Wed Oct 5 21:25:59 2005 @@ -630,22 +630,6 @@ } } -| "##" - { - if (!inComment) - { - if (curLexState == REFERENCE) - { - inReference = false; - stateStackPop(); - } - - inComment = true; - stateStackPush(); - SwitchTo(IN_SINGLE_LINE_COMMENT); - } - } - | <"#**" ~["#"]> { input_stream.backup(1); @@ -689,6 +673,29 @@ } } + +// treat the single line comment case separately +// to avoid ##<EOF> errors +<*> +TOKEN : +{ + <SINGLE_LINE_COMMENT_START: "##"> + { + if (!inComment) + { + if (curLexState == REFERENCE) + { + inReference = false; + stateStackPop(); + } + + inComment = true; + stateStackPush(); + SwitchTo(IN_SINGLE_LINE_COMMENT); + } + } +} + TOKEN : { <DOUBLE_ESCAPE : "\\\\"> @@ -704,7 +711,7 @@ <IN_SINGLE_LINE_COMMENT> TOKEN : { - <SINGLE_LINE_COMMENT: "\n" | "\r" | "\r\n" > + <SINGLE_LINE_COMMENT: "\n" | "\r" | "\r\n"> { inComment = false; stateStackPop(); @@ -1212,16 +1219,16 @@ jjtree.openNodeScope(jjtn000); /[EMAIL PROTECTED]/} {/[EMAIL PROTECTED](jjtree) Comment */ - try { + try { /[EMAIL PROTECTED]/ - <SINGLE_LINE_COMMENT> + <SINGLE_LINE_COMMENT_START> ( <SINGLE_LINE_COMMENT> ) ? | <MULTI_LINE_COMMENT> | <FORMAL_COMMENT>/[EMAIL PROTECTED](jjtree)*/ - } finally { - if (jjtc000) { - jjtree.closeNodeScope(jjtn000, true); - } - } + } finally { + if (jjtc000) { + jjtree.closeNodeScope(jjtn000, true); + } + } /[EMAIL PROTECTED]/ } Modified: jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jjt URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jjt?rev=306522&r1=306521&r2=306522&view=diff ============================================================================== --- jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jjt (original) +++ jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/Parser.jjt Wed Oct 5 21:25:59 2005 @@ -651,22 +651,6 @@ } } -| "##" - { - if (!inComment) - { - if (curLexState == REFERENCE) - { - inReference = false; - stateStackPop(); - } - - inComment = true; - stateStackPush(); - SwitchTo(IN_SINGLE_LINE_COMMENT); - } - } - | <"#**" ~["#"]> { input_stream.backup(1); @@ -710,6 +694,29 @@ } } + +// treat the single line comment case separately +// to avoid ##<EOF> errors +<*> +TOKEN : +{ + <SINGLE_LINE_COMMENT_START: "##"> + { + if (!inComment) + { + if (curLexState == REFERENCE) + { + inReference = false; + stateStackPop(); + } + + inComment = true; + stateStackPush(); + SwitchTo(IN_SINGLE_LINE_COMMENT); + } + } +} + TOKEN : { <DOUBLE_ESCAPE : "\\\\"> @@ -725,7 +732,7 @@ <IN_SINGLE_LINE_COMMENT> TOKEN : { - <SINGLE_LINE_COMMENT: "\n" | "\r" | "\r\n" > + <SINGLE_LINE_COMMENT: "\n" | "\r" | "\r\n"> { inComment = false; stateStackPop(); @@ -1164,7 +1171,7 @@ void Comment() : {} { - <SINGLE_LINE_COMMENT> + <SINGLE_LINE_COMMENT_START> ( <SINGLE_LINE_COMMENT> ) ? | <MULTI_LINE_COMMENT> | <FORMAL_COMMENT> } Modified: jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserConstants.java URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserConstants.java?rev=306522&r1=306521&r2=306522&view=diff ============================================================================== --- jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserConstants.java (original) +++ jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserConstants.java Wed Oct 5 21:25:59 2005 @@ -18,7 +18,8 @@ int SET_DIRECTIVE = 12; int DOLLAR = 13; int DOLLARBANG = 14; - int HASH = 18; + int HASH = 17; + int SINGLE_LINE_COMMENT_START = 18; int DOUBLE_ESCAPE = 19; int ESCAPE = 20; int TEXT = 21; @@ -94,10 +95,10 @@ "<SET_DIRECTIVE>", "<DOLLAR>", "<DOLLARBANG>", - "\"##\"", - "<token of kind 16>", + "<token of kind 15>", "\"#*\"", "\"#\"", + "\"##\"", "\"\\\\\\\\\"", "\"\\\\\"", "<TEXT>", Modified: jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java?rev=306522&r1=306521&r2=306522&view=diff ============================================================================== --- jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java (original) +++ jakarta/velocity/core/trunk/src/java/org/apache/velocity/runtime/parser/ParserTokenManager.java Wed Oct 5 21:25:59 2005 @@ -178,7 +178,7 @@ return 60; if ((active0 & 0x80000000L) != 0L) return 96; - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 7; return -1; case 1: @@ -188,7 +188,7 @@ jjmatchedPos = 1; return 58; } - if ((active0 & 0x20000L) != 0L) + if ((active0 & 0x10000L) != 0L) return 5; return -1; case 2: @@ -236,8 +236,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_0(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_0(0x50000L); case 37: return jjStopAtPos(0, 35); case 40: @@ -284,12 +284,12 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_0(1, 17, 5); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_0(1, 16, 5); break; case 46: if ((active0 & 0x10L) != 0L) @@ -524,8 +524,8 @@ jjstateSet[jjnewStateCnt++] = 6; break; case 6: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; case 7: if (curChar == 42) @@ -826,8 +826,8 @@ jjstateSet[jjnewStateCnt++] = 33; break; case 6: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; case 11: if ((0xffffffffefffffffL & l) != 0L) @@ -989,8 +989,8 @@ switch(jjstateSet[--i]) { case 6: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; case 11: if (jjCanMove_0(hiByte, i1, i2, l1, l2)) @@ -1022,7 +1022,7 @@ switch (pos) { case 0: - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 2; return -1; default : @@ -1046,8 +1046,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_6(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_6(0x50000L); case 42: return jjMoveStringLiteralDfa1_6(0x1000000L); default : @@ -1064,14 +1064,14 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); else if ((active0 & 0x1000000L) != 0L) return jjStopAtPos(1, 24); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_6(1, 17, 0); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_6(1, 16, 0); break; default : break; @@ -1112,8 +1112,8 @@ jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; case 2: if (curChar == 42) @@ -1154,8 +1154,8 @@ jjCheckNAddStates(52, 55); break; case 1: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; case 5: if (curChar == 92) @@ -1185,8 +1185,8 @@ switch(jjstateSet[--i]) { case 1: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; default : break; } @@ -1210,7 +1210,7 @@ switch (pos) { case 0: - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 2; return -1; default : @@ -1234,8 +1234,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_4(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_4(0x50000L); default : return jjMoveNfa_4(3, 0); } @@ -1250,12 +1250,12 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_4(1, 17, 0); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_4(1, 16, 0); break; default : break; @@ -1306,8 +1306,8 @@ jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; case 2: if (curChar == 42) @@ -1509,8 +1509,8 @@ jjstateSet[jjnewStateCnt++] = 4; break; case 1: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; case 4: if (curChar == 102 && kind > 47) @@ -1757,8 +1757,8 @@ switch(jjstateSet[--i]) { case 1: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; default : break; } @@ -1784,7 +1784,7 @@ case 0: if ((active0 & 0x180000L) != 0L) return 14; - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 29; return -1; default : @@ -1808,8 +1808,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_3(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_3(0x50000L); case 92: jjmatchedKind = 20; return jjMoveStringLiteralDfa1_3(0x80000L); @@ -1827,12 +1827,12 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_3(1, 17, 27); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_3(1, 16, 27); break; case 92: if ((active0 & 0x80000L) != 0L) @@ -1966,8 +1966,8 @@ jjstateSet[jjnewStateCnt++] = 28; break; case 28: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; default : break; } @@ -2078,8 +2078,8 @@ jjAddStates(109, 110); break; case 28: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; default : break; } @@ -2105,8 +2105,8 @@ jjCheckNAdd(12); break; case 28: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; default : break; } @@ -2130,7 +2130,7 @@ switch (pos) { case 0: - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 2; return -1; default : @@ -2154,8 +2154,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_7(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_7(0x50000L); case 42: return jjMoveStringLiteralDfa1_7(0x800000L); default : @@ -2172,14 +2172,14 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); else if ((active0 & 0x800000L) != 0L) return jjStopAtPos(1, 23); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_7(1, 17, 0); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_7(1, 16, 0); break; default : break; @@ -2220,8 +2220,8 @@ jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; case 2: if (curChar == 42) @@ -2262,8 +2262,8 @@ jjCheckNAddStates(52, 55); break; case 1: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; case 5: if (curChar == 92) @@ -2293,8 +2293,8 @@ switch(jjstateSet[--i]) { case 1: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; default : break; } @@ -2318,7 +2318,7 @@ switch (pos) { case 0: - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 2; return -1; default : @@ -2342,8 +2342,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_8(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_8(0x50000L); default : return jjMoveNfa_8(3, 0); } @@ -2358,12 +2358,12 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_8(1, 17, 0); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_8(1, 16, 0); break; default : break; @@ -2411,8 +2411,8 @@ jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; case 2: if (curChar == 42) @@ -2465,8 +2465,8 @@ jjCheckNAddStates(111, 114); break; case 1: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; case 8: if (curChar == 92) @@ -2496,8 +2496,8 @@ switch(jjstateSet[--i]) { case 1: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; default : break; } @@ -2521,7 +2521,7 @@ switch (pos) { case 0: - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 2; if ((active0 & 0x30000000L) != 0L) { @@ -2530,7 +2530,7 @@ } return -1; case 1: - if ((active0 & 0x20000L) != 0L) + if ((active0 & 0x10000L) != 0L) return 0; if ((active0 & 0x30000000L) != 0L) { @@ -2578,8 +2578,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_5(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_5(0x50000L); case 102: return jjMoveStringLiteralDfa1_5(0x20000000L); case 116: @@ -2602,12 +2602,12 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_5(1, 17, 0); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_5(1, 16, 0); break; case 97: return jjMoveStringLiteralDfa2_5(active0, 0x20000000L); @@ -2716,8 +2716,8 @@ jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; case 2: if (curChar == 42) @@ -2775,8 +2775,8 @@ jjCheckNAddStates(117, 120); break; case 1: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; case 4: case 5: @@ -2822,8 +2822,8 @@ switch(jjstateSet[--i]) { case 1: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; default : break; } @@ -2847,7 +2847,7 @@ switch (pos) { case 0: - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 2; if ((active0 & 0x10L) != 0L) return 53; @@ -2858,7 +2858,7 @@ } return -1; case 1: - if ((active0 & 0x20000L) != 0L) + if ((active0 & 0x10000L) != 0L) return 0; if ((active0 & 0x30000000L) != 0L) { @@ -2906,8 +2906,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_1(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_1(0x50000L); case 41: return jjStopAtPos(0, 10); case 44: @@ -2942,12 +2942,12 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_1(1, 17, 0); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_1(1, 16, 0); break; case 46: if ((active0 & 0x10L) != 0L) @@ -3086,8 +3086,8 @@ jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; case 2: if (curChar == 42) @@ -3301,8 +3301,8 @@ kind = 63; break; case 1: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; case 6: if ((0xffffffffefffffffL & l) != 0L) @@ -3375,8 +3375,8 @@ switch(jjstateSet[--i]) { case 1: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; case 6: if (jjCanMove_0(hiByte, i1, i2, l1, l2)) @@ -3408,7 +3408,7 @@ switch (pos) { case 0: - if ((active0 & 0x68000L) != 0L) + if ((active0 & 0x70000L) != 0L) return 2; if ((active0 & 0x30000000L) != 0L) { @@ -3417,7 +3417,7 @@ } return -1; case 1: - if ((active0 & 0x20000L) != 0L) + if ((active0 & 0x10000L) != 0L) return 0; if ((active0 & 0x30000000L) != 0L) { @@ -3465,8 +3465,8 @@ switch(curChar) { case 35: - jjmatchedKind = 18; - return jjMoveStringLiteralDfa1_2(0x28000L); + jjmatchedKind = 17; + return jjMoveStringLiteralDfa1_2(0x50000L); case 40: return jjStopAtPos(0, 8); case 102: @@ -3491,12 +3491,12 @@ switch(curChar) { case 35: - if ((active0 & 0x8000L) != 0L) - return jjStopAtPos(1, 15); + if ((active0 & 0x40000L) != 0L) + return jjStopAtPos(1, 18); break; case 42: - if ((active0 & 0x20000L) != 0L) - return jjStartNfaWithStates_2(1, 17, 0); + if ((active0 & 0x10000L) != 0L) + return jjStartNfaWithStates_2(1, 16, 0); break; case 97: return jjMoveStringLiteralDfa2_2(active0, 0x20000000L); @@ -3605,8 +3605,8 @@ jjstateSet[jjnewStateCnt++] = 1; break; case 1: - if ((0xfffffff7ffffffffL & l) != 0L && kind > 16) - kind = 16; + if ((0xfffffff7ffffffffL & l) != 0L && kind > 15) + kind = 15; break; case 2: if (curChar == 42) @@ -3664,8 +3664,8 @@ jjCheckNAddStates(117, 120); break; case 1: - if (kind > 16) - kind = 16; + if (kind > 15) + kind = 15; break; case 4: case 5: @@ -3711,8 +3711,8 @@ switch(jjstateSet[--i]) { case 1: - if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 16) - kind = 16; + if (jjCanMove_0(hiByte, i1, i2, l1, l2) && kind > 15) + kind = 15; break; default : break; } @@ -3778,7 +3778,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, }; static final long[] jjtoToken = { - 0xc637fffffdf81fffL, 0x3L, + 0xc637fffffdfc1fffL, 0x3L, }; static final long[] jjtoSkip = { 0x2000000L, 0xcL, @@ -3787,7 +3787,7 @@ 0x0L, 0xcL, }; static final long[] jjtoMore = { - 0x7e000L, 0x0L, + 0x3e000L, 0x0L, }; protected CharStream input_stream; private final int[] jjrounds = new int[96]; @@ -4127,31 +4127,12 @@ else image.append(input_stream.GetSuffix(jjimageLen)); jjimageLen = 0; - if (!inComment) - { - if (curLexState == REFERENCE) - { - inReference = false; - stateStackPop(); - } - - inComment = true; - stateStackPush(); - SwitchTo(IN_SINGLE_LINE_COMMENT); - } - break; - case 16 : - if (image == null) - image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen))); - else - image.append(input_stream.GetSuffix(jjimageLen)); - jjimageLen = 0; input_stream.backup(1); inComment = true; stateStackPush(); SwitchTo( IN_FORMAL_COMMENT); break; - case 17 : + case 16 : if (image == null) image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen))); else @@ -4161,7 +4142,7 @@ stateStackPush(); SwitchTo( IN_MULTI_LINE_COMMENT ); break; - case 18 : + case 17 : if (image == null) image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen))); else @@ -4267,6 +4248,24 @@ if (curLexState == REFMODIFIER ) SwitchTo( REFMOD2 ); + } + break; + case 18 : + if (image == null) + image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1)))); + else + image.append(input_stream.GetSuffix(jjimageLen + (lengthOfMatch = jjmatchedPos + 1))); + if (!inComment) + { + if (curLexState == REFERENCE) + { + inReference = false; + stateStackPop(); + } + + inComment = true; + stateStackPush(); + SwitchTo(IN_SINGLE_LINE_COMMENT); } break; case 22 : Added: jakarta/velocity/core/trunk/test/templates/comment-eof.vm URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/test/templates/comment-eof.vm?rev=306522&view=auto ============================================================================== --- jakarta/velocity/core/trunk/test/templates/comment-eof.vm (added) +++ jakarta/velocity/core/trunk/test/templates/comment-eof.vm Wed Oct 5 21:25:59 2005 @@ -0,0 +1,3 @@ +## Test to see if ##EOF gives an error +test +## \ No newline at end of file Added: jakarta/velocity/core/trunk/test/templates/compare/comment-eof.cmp URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/test/templates/compare/comment-eof.cmp?rev=306522&view=auto ============================================================================== --- jakarta/velocity/core/trunk/test/templates/compare/comment-eof.cmp (added) +++ jakarta/velocity/core/trunk/test/templates/compare/comment-eof.cmp Wed Oct 5 21:25:59 2005 @@ -0,0 +1 @@ +test Modified: jakarta/velocity/core/trunk/test/templates/templates.properties URL: http://svn.apache.org/viewcvs/jakarta/velocity/core/trunk/test/templates/templates.properties?rev=306522&r1=306521&r2=306522&view=diff ============================================================================== --- jakarta/velocity/core/trunk/test/templates/templates.properties (original) +++ jakarta/velocity/core/trunk/test/templates/templates.properties Wed Oct 5 21:25:59 2005 @@ -1,4 +1,4 @@ -# Base names of templates to add to the VelocityTestSuite +# Base names of templates to add to the VelocitytestSuite test.template.1 = arithmetic test.template.2 = array @@ -45,4 +45,5 @@ test.template.43 = stop1 test.template.44 = stop2 test.template.45 = foreach-null-list -test.template.46 = curly-directive \ No newline at end of file +test.template.46 = curly-directive +test.template.47 = comment-eof \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]