What exactly does this do?
-- 

Daniel Rall <[EMAIL PROTECTED]>


geirm       00/10/30 18:45:09

  Modified:    src/java/org/apache/velocity/runtime/parser Parser.java
                        Parser.jj Parser.jjt ParserConstants.java
                        ParserTokenManager.java
  Log:
  Fix for the $f.<whitespace>$f problem. This fix changes the output to be what I 
think is closer to correct.
  The fixes to make it correct will soon follow.
  
  Revision  Changes    Path
  1.10      +90 -90    
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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Parser.java       2000/10/28 14:19:53     1.9
  +++ Parser.java       2000/10/31 02:44:59     1.10
  @@ -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.9 2000/10/28 14:19:53 geirm Exp $ 
  + * @version $Id: Parser.java,v 1.10 2000/10/31 02:44:59 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants 
{/*@bgen(jjtree)*/
     protected JJTParserState jjtree = new JJTParserState();
  @@ -1713,95 +1713,6 @@
       return retval;
     }
   
  -  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_45() {
  -    if (jj_3R_49()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_36() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_45()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_46()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_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_3_2()) {
  -    jj_scanpos = xsp;
  -    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;
  -    xsp = jj_scanpos;
  -    if (jj_3R_47()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_43() {
  -    if (jj_scan_token(RCURLY)) return true;
  -    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;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_42() {
  -    if (jj_scan_token(LCURLY)) 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_32() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_42()) 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_43()) 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;
  -    }
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_48() {
  -    if (jj_scan_token(COMMA)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_29()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
     final private boolean jj_3R_18() {
       if (jj_3R_20()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2286,6 +2197,95 @@
   
     final private boolean jj_3R_34() {
       if (jj_scan_token(TRUE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_46() {
  +    if (jj_3R_50()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_45() {
  +    if (jj_3R_49()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_36() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_45()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_46()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_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_3_2()) {
  +    jj_scanpos = xsp;
  +    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;
  +    xsp = jj_scanpos;
  +    if (jj_3R_47()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_43() {
  +    if (jj_scan_token(RCURLY)) return true;
  +    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;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_42() {
  +    if (jj_scan_token(LCURLY)) 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_32() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_42()) 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_43()) 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;
  +    }
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_48() {
  +    if (jj_scan_token(COMMA)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_29()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  
  
  
  1.10      +19 -6     
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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Parser.jj 2000/10/28 14:19:53     1.9
  +++ Parser.jj 2000/10/31 02:45:00     1.10
  @@ -98,7 +98,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.9 2000/10/28 14:19:53 geirm Exp $ 
  + * @version $Id: Parser.jj,v 1.10 2000/10/31 02:45:00 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
   {/*@bgen(jjtree)*/
  @@ -693,11 +693,24 @@
   |   <#ALPHANUM_CHAR: [ "a"-"z", "A"-"Z", "0"-"9" ] >
   |   <#IDENTIFIER_CHAR: [ "a"-"z", "A"-"Z", "0"-"9", "-", "_" ] >
   |   <IDENTIFIER:  <ALPHA_CHAR> (<IDENTIFIER_CHAR>)* >
  -|   <DOT: ".">
  -    {
  -        if ( bDebugPrint_ )
  -            System.out.print("DOT : switching to " + REFMODIFIER);
  -        SwitchTo(REFMODIFIER);
  +|   <DOT: "." <ALPHA_CHAR>> 
  +    { 
  +        /*
  +         * push the alpha char back into the stream so the following identifier is 
complete
  +         */
  +
  +        input_stream.backup(1); 
  +
  +        /*
  +         *  and munge the <DOT> so we just get a . when we have normal text that 
looks like a ref.ident
  +         */
  +
  +        matchedToken.image = ".";
  +
  +        if ( bDebugPrint_ ) 
  +            System.out.print("DOT : switching to " + REFMODIFIER); 
  +        SwitchTo(REFMODIFIER); 
  +
       }
   |   <LCURLY: "{">
   |   <RCURLY: "}">
  
  
  
  1.10      +19 -6     
jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jjt
  
  Index: Parser.jjt
  ===================================================================
  RCS file: 
/home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Parser.jjt,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- Parser.jjt        2000/10/28 14:19:54     1.9
  +++ Parser.jjt        2000/10/31 02:45:00     1.10
  @@ -122,7 +122,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]">Jason van Zyl</a>
    * @author <a href="mailto:[EMAIL PROTECTED]">Geir Magnusson Jr.</a>
  - * @version $Id: Parser.jjt,v 1.9 2000/10/28 14:19:54 geirm Exp $ 
  + * @version $Id: Parser.jjt,v 1.10 2000/10/31 02:45:00 geirm Exp $ 
   */
   public class Parser
   {
  @@ -714,11 +714,24 @@
   |   <#ALPHANUM_CHAR: [ "a"-"z", "A"-"Z", "0"-"9" ] >
   |   <#IDENTIFIER_CHAR: [ "a"-"z", "A"-"Z", "0"-"9", "-", "_" ] >
   |   <IDENTIFIER:  <ALPHA_CHAR> (<IDENTIFIER_CHAR>)* >
  -|   <DOT: ".">
  -    {
  -        if ( bDebugPrint_ )
  -            System.out.print("DOT : switching to " + REFMODIFIER);
  -        SwitchTo(REFMODIFIER);
  +|   <DOT: "." <ALPHA_CHAR>> 
  +    { 
  +        /*
  +         * push the alpha char back into the stream so the following identifier is 
complete
  +         */
  +
  +        input_stream.backup(1); 
  +
  +        /*
  +         *  and munge the <DOT> so we just get a . when we have normal text that 
looks like a ref.ident
  +         */
  +
  +        matchedToken.image = ".";
  +
  +        if ( bDebugPrint_ ) 
  +            System.out.print("DOT : switching to " + REFMODIFIER); 
  +        SwitchTo(REFMODIFIER); 
  +
       }
   |   <LCURLY: "{">
   |   <RCURLY: "}">
  
  
  
  1.6       +1 -1      
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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ParserConstants.java      2000/10/27 05:18:45     1.5
  +++ ParserConstants.java      2000/10/31 02:45:01     1.6
  @@ -120,7 +120,7 @@
       "<ALPHANUM_CHAR>",
       "<IDENTIFIER_CHAR>",
       "<IDENTIFIER>",
  -    "\".\"",
  +    "<DOT>",
       "\"{\"",
       "\"}\"",
       "<REFERENCE_TERMINATOR>",
  
  
  
  1.9       +51 -15    
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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- ParserTokenManager.java   2000/10/28 14:19:54     1.8
  +++ ParserTokenManager.java   2000/10/31 02:45:01     1.9
  @@ -903,8 +903,6 @@
         case 36:
            jjmatchedKind = 8;
            return jjMoveStringLiteralDfa1_4(0x200L);
  -      case 46:
  -         return jjStopAtPos(0, 54);
         case 102:
            return jjMoveStringLiteralDfa1_4(0x400000L);
         case 116:
  @@ -1013,7 +1011,7 @@
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 9;
  +   jjnewStateCnt = 11;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1029,7 +1027,9 @@
               switch(jjstateSet[--i])
               {
                  case 3:
  -                  if (curChar == 34)
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 10;
  +                  else if (curChar == 34)
                        jjCheckNAddTwoStates(5, 6);
                     else if (curChar == 35)
                        jjstateSet[jjnewStateCnt++] = 2;
  @@ -1065,6 +1065,10 @@
                        kind = 53;
                     jjstateSet[jjnewStateCnt++] = 8;
                     break;
  +               case 9:
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 10;
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1097,6 +1101,10 @@
                        kind = 53;
                     jjCheckNAdd(8);
                     break;
  +               case 10:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 54)
  +                     kind = 54;
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1128,7 +1136,7 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 11 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
  @@ -1205,8 +1213,6 @@
            return jjStopAtPos(0, 4);
         case 41:
            return jjStopAtPos(0, 5);
  -      case 46:
  -         return jjStopAtPos(0, 54);
         case 91:
            return jjStopAtPos(0, 1);
         case 93:
  @@ -1319,7 +1325,7 @@
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 9;
  +   jjnewStateCnt = 11;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1335,7 +1341,9 @@
               switch(jjstateSet[--i])
               {
                  case 3:
  -                  if (curChar == 34)
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 10;
  +                  else if (curChar == 34)
                        jjCheckNAddTwoStates(5, 6);
                     else if (curChar == 35)
                        jjstateSet[jjnewStateCnt++] = 2;
  @@ -1371,6 +1379,10 @@
                        kind = 53;
                     jjstateSet[jjnewStateCnt++] = 8;
                     break;
  +               case 9:
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 10;
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1403,6 +1415,10 @@
                        kind = 53;
                     jjCheckNAdd(8);
                     break;
  +               case 10:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 54)
  +                     kind = 54;
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1434,7 +1450,7 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 11 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
  @@ -1663,8 +1679,6 @@
            return jjStopAtPos(0, 5);
         case 44:
            return jjStopAtPos(0, 3);
  -      case 46:
  -         return jjStopAtPos(0, 54);
         case 91:
            return jjStopAtPos(0, 1);
         case 93:
  @@ -1777,7 +1791,7 @@
   {
      int[] nextStates;
      int startsAt = 0;
  -   jjnewStateCnt = 9;
  +   jjnewStateCnt = 11;
      int i = 1;
      jjstateSet[0] = startState;
      int j, kind = 0x7fffffff;
  @@ -1793,7 +1807,9 @@
               switch(jjstateSet[--i])
               {
                  case 3:
  -                  if (curChar == 34)
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 10;
  +                  else if (curChar == 34)
                        jjCheckNAddTwoStates(5, 6);
                     else if (curChar == 35)
                        jjstateSet[jjnewStateCnt++] = 2;
  @@ -1829,6 +1845,10 @@
                        kind = 53;
                     jjstateSet[jjnewStateCnt++] = 8;
                     break;
  +               case 9:
  +                  if (curChar == 46)
  +                     jjstateSet[jjnewStateCnt++] = 10;
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1861,6 +1881,10 @@
                        kind = 53;
                     jjCheckNAdd(8);
                     break;
  +               case 10:
  +                  if ((0x7fffffe07fffffeL & l) != 0L && kind > 54)
  +                     kind = 54;
  +                  break;
                  default : break;
               }
            } while(i != startsAt);
  @@ -1892,7 +1916,7 @@
            kind = 0x7fffffff;
         }
         ++curPos;
  -      if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
  +      if ((i = jjnewStateCnt) == (startsAt = 11 - (jjnewStateCnt = startsAt)))
            return curPos;
         try { curChar = input_stream.readChar(); }
         catch(java.io.IOException e) { return curPos; }
  @@ -2842,6 +2866,18 @@
               image = new StringBuffer(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
            else
               image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
  +        /*
  +         * push the alpha char back into the stream so the following identifier is 
complete
  +         */
  +
  +        input_stream.backup(1);
  +
  +        /*
  +         *  and munge the <DOT> so we just get a . when we have normal text that 
looks like a ref.ident
  +         */
  +
  +        matchedToken.image = ".";
  +
           if ( bDebugPrint_ )
               System.out.print("DOT : switching to " + REFMODIFIER);
           SwitchTo(REFMODIFIER);
  
  
  


Reply via email to