geirm       00/11/04 19:18:43

  Modified:    src/java/org/apache/velocity/runtime/parser Parser.java
                        Parser.jj ParserTokenManager.java
  Log:
  Parser.jjt camp followers.
  
  Revision  Changes    Path
  1.20      +170 -170  
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.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Parser.java       2000/11/04 15:30:28     1.19
  +++ Parser.java       2000/11/05 03:18:42     1.20
  @@ -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.19 2000/11/04 15:30:28 geirm Exp $ 
  + * @version $Id: Parser.java,v 1.20 2000/11/05 03:18:42 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants 
{/*@bgen(jjtree)*/
     protected JJTParserState jjtree = new JJTParserState();
  @@ -1818,6 +1818,175 @@
       return retval;
     }
   
  +  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_25() {
  +    if (jj_3R_33()) 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;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_29() {
  +    Token xsp;
  +    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()) 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;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_24() {
  +    if (jj_3R_32()) 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;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  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_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;
  +    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;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_73() {
  +    if (jj_3R_19()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_76() {
  +    if (jj_scan_token(MODULUS)) 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_72() {
  +    if (jj_scan_token(LOGICAL_NOT)) 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_68() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_72()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_73()) 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_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_75() {
  +    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;
  +  }
  +
     final private boolean jj_3R_47() {
       if (jj_scan_token(RCURLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2222,175 +2391,6 @@
   
     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_38() {
  -    if (jj_3R_33()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  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_3R_37() {
  -    if (jj_3R_30()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_29() {
  -    Token xsp;
  -    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()) 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;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_24() {
  -    if (jj_3R_32()) 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;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  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_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;
  -    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;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_73() {
  -    if (jj_3R_19()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_76() {
  -    if (jj_scan_token(MODULUS)) 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_72() {
  -    if (jj_scan_token(LOGICAL_NOT)) 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_68() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_72()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_73()) 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_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_75() {
  -    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.20      +28 -24    
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.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- Parser.jj 2000/11/04 15:30:29     1.19
  +++ Parser.jj 2000/11/05 03:18:42     1.20
  @@ -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.19 2000/11/04 15:30:29 geirm Exp $ 
  + * @version $Id: Parser.jj,v 1.20 2000/11/05 03:18:42 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
   {/*@bgen(jjtree)*/
  @@ -467,12 +467,13 @@
       }    
   }
   
  -/*
  - *  in REFMOD2, we don't want to bind the whitespace and \n like we do when closing 
a directive.
  - */
  +
   <REFMOD2>
   TOKEN:
   {
  +    /*
  +     *  in REFMOD2, we don't want to bind the whitespace and \n like we do when 
closing a directive.
  +     */
       <REFMOD2_RPAREN: ")">
       {
           /*
  @@ -835,34 +836,17 @@
       <REFERENCE_TERMINATOR: ~[] >
       {   
           /*
  -         *  These can terminate a reference, but are needed in subsequent states
  +         * push every terminator character back into the stream  
            */
   
  -        if (image.toString().equals("=") || image.toString().equals("\n") || 
image.toString().equals("\r") )
  -        {
  -            input_stream.backup(1);
  -        } 
  -                
  +        input_stream.backup(1);
  +      
           inReference = false;
       
           if ( bDebugPrint_ )
               System.out.print("REF_TERM :");
           
           stateStackPop();
  -
  -        /*
  -         *  I removed LPAREN & RPAREN from REFERENCE;  as there is no LPAREN,RPAREN 
in REF is there is REFMETHOD
  -         */
  -        
  -        if (curLexState != DEFAULT && ( image.toString().equals(")") 
  -                                        || image.toString().equals(",") 
  -                                        || image.toString().equals("[") 
  -                                        || image.toString().equals("]")
  -                                        ) )
  -        {
  -            input_stream.backup(1);
  -        }
  -
       }
   }
   
  @@ -2162,6 +2146,26 @@
       would output
   
           $foo  $bar  \$woogie
  +
  +    
  +    What You Expect
  +    ---------------
  +    The recent versions of the parser are trying to support precise output to 
support general template use.
  +    So the #set statment no longer renders to a \n in the output, nor do the 
control statements.  So if you
  +    had a template
  +    
  +        ------
  +        #set $foo="foo"
  +        #if($foo)
  +        \$foo = $foo
  +        #end
  +        ------
  +
  +    it will render precisely :
  +
  +        ------
  +        $foo = foo
  +        ------
   
   
   */
  
  
  
  1.18      +2 -18     
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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- ParserTokenManager.java   2000/11/04 15:30:29     1.17
  +++ ParserTokenManager.java   2000/11/05 03:18:42     1.18
  @@ -3244,13 +3244,10 @@
            else
               image.append(new String(input_stream.GetSuffix(jjimageLen + 
(lengthOfMatch = jjmatchedPos + 1))));
           /*
  -         *  These can terminate a reference, but are needed in subsequent states
  +         * push every terminator character back into the stream  
            */
   
  -        if (image.toString().equals("=") || image.toString().equals("\n") || 
image.toString().equals("\r") )
  -        {
  -            input_stream.backup(1);
  -        }
  +        input_stream.backup(1);
   
           inReference = false;
   
  @@ -3258,19 +3255,6 @@
               System.out.print("REF_TERM :");
   
           stateStackPop();
  -
  -        /*
  -         *  I removed LPAREN & RPAREN from REFERENCE;  as there is no LPAREN,RPAREN 
in REF is there is REFMETHOD
  -         */
  -
  -        if (curLexState != DEFAULT && ( image.toString().equals(")")
  -                                        || image.toString().equals(",")
  -                                        || image.toString().equals("[")
  -                                        || image.toString().equals("]")
  -                                        ) )
  -        {
  -            input_stream.backup(1);
  -        }
            break;
         default :
            break;
  
  
  

Reply via email to