geirm 00/11/04 07:30:31
Modified: src/java/org/apache/velocity/runtime/parser Parser.java
Parser.jj ParserTokenManager.java
Log:
"Round up the usual suspects!" (Parser.jjt fix...)
Revision Changes Path
1.19 +41 -41
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.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- Parser.java 2000/11/03 11:34:51 1.18
+++ Parser.java 2000/11/04 15:30:28 1.19
@@ -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.18 2000/11/03 11:34:51 geirm Exp $
+ * @version $Id: Parser.java,v 1.19 2000/11/04 15:30:28 geirm Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants
{/*@bgen(jjtree)*/
protected JJTParserState jjtree = new JJTParserState();
@@ -1818,46 +1818,6 @@
return retval;
}
- final private boolean jj_3R_74() {
- if (jj_scan_token(MULTIPLY)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_3R_68()) 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_74()) {
- jj_scanpos = xsp;
- if (jj_3R_75()) {
- jj_scanpos = xsp;
- if (jj_3R_76()) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_33() {
- if (jj_scan_token(LBRACKET)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- Token xsp;
- xsp = jj_scanpos;
- if (jj_3R_44()) jj_scanpos = xsp;
- else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- if (jj_scan_token(RBRACKET)) return true;
- if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
- return false;
- }
-
- final private boolean jj_3R_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_47() {
if (jj_scan_token(RCURLY)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
@@ -2391,6 +2351,46 @@
if (jj_scan_token(DIVIDE)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
if (jj_3R_68()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_74() {
+ if (jj_scan_token(MULTIPLY)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_3R_68()) 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_74()) {
+ jj_scanpos = xsp;
+ if (jj_3R_75()) {
+ jj_scanpos = xsp;
+ if (jj_3R_76()) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_33() {
+ if (jj_scan_token(LBRACKET)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ Token xsp;
+ xsp = jj_scanpos;
+ if (jj_3R_44()) jj_scanpos = xsp;
+ else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ if (jj_scan_token(RBRACKET)) return true;
+ if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
+ return false;
+ }
+
+ final private boolean jj_3R_31() {
+ if (jj_scan_token(NUMBER_LITERAL)) return true;
if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
return false;
}
1.19 +8 -3
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.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- Parser.jj 2000/11/03 11:34:53 1.18
+++ Parser.jj 2000/11/04 15:30:29 1.19
@@ -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.18 2000/11/03 11:34:53 geirm Exp $
+ * @version $Id: Parser.jj,v 1.19 2000/11/04 15:30:29 geirm Exp $
*/
public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
{/*@bgen(jjtree)*/
@@ -455,7 +455,7 @@
}
}
-/* $$$ gmj
+/*
* we never will see a ) in anything but DIRECTIVE and REFMOD2. Each have their
own
*/
<DIRECTIVE>
@@ -475,7 +475,12 @@
{
<REFMOD2_RPAREN: ")">
{
- RPARENHandler();
+ /*
+ * need to simply switch back to REFERENCE, not drop down the stack
+ * because we can (infinitely) chain, ala
$foo.bar().blargh().woogie().doogie()
+ */
+
+ SwitchTo( REFERENCE );
}
}
1.17 +6 -1
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.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- ParserTokenManager.java 2000/11/03 11:34:56 1.16
+++ ParserTokenManager.java 2000/11/04 15:30:29 1.17
@@ -3398,7 +3398,12 @@
image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
else
image.append(new String(input_stream.GetSuffix(jjimageLen +
(lengthOfMatch = jjmatchedPos + 1))));
- RPARENHandler();
+ /*
+ * need to simply switch back to REFERENCE, not drop down the stack
+ * because we can (infinitely) chain, ala
$foo.bar().blargh().woogie().doogie()
+ */
+
+ SwitchTo( REFERENCE );
break;
case 7 :
if (image == null)