geirm       01/08/07 14:57:28

  Modified:    src/java/org/apache/velocity/runtime/parser Parser.java
                        Parser.jj ParserTokenManager.java
  Log:
  Support for separable instances of the runtime engine.
  
  Revision  Changes    Path
  1.65      +116 -109  
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.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- Parser.java       2001/07/18 03:50:45     1.64
  +++ Parser.java       2001/08/07 21:57:28     1.65
  @@ -4,7 +4,7 @@
   import java.io.*;
   import java.util.*;
   
  -import org.apache.velocity.runtime.Runtime;
  +import org.apache.velocity.runtime.RuntimeServices;
   import org.apache.velocity.runtime.parser.node.*;
   import org.apache.velocity.runtime.directive.Directive;
   import org.apache.velocity.runtime.directive.Macro;
  @@ -21,7 +21,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.64 2001/07/18 03:50:45 geirm Exp $ 
  + * @version $Id: Parser.java,v 1.65 2001/08/07 21:57:28 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants 
{/*@bgen(jjtree)*/
     protected JJTParserState jjtree = new JJTParserState();/**
  @@ -36,6 +36,8 @@
   
       VelocityCharStream velcharstream = null;
   
  +    private RuntimeServices rsvc = null;
  +
       /** 
        * This constructor was added to allow the re-use of parsers.
        * The normal constructor takes a single argument which 
  @@ -43,7 +45,7 @@
        * object, we satisfy the requirement of an InputStream
        * by using a newline character as an input stream.
        */
  -    public Parser()
  +    public Parser( RuntimeServices rs)
       {
           /*
            * need to call the CTOR first thing.
  @@ -57,6 +59,11 @@
            */
           velcharstream = new VelocityCharStream(
                   new ByteArrayInputStream("\n".getBytes()), 1, 1 );
  +
  +        /*
  +         *  and save the RuntimeServices
  +         */
  +        rsvc = rs;
       }
   
       /** 
  @@ -97,7 +104,7 @@
           }
           catch (ParseException pe)
           {
  -            Runtime.error ("Parser Exception: " + templateName + " : " + 
StringUtils.stackTrace(pe));
  +            rsvc.error ("Parser Exception: " + templateName + " : " + 
StringUtils.stackTrace(pe));
               throw new ParseException (pe.currentToken,
                   pe.expectedTokenSequences, pe.tokenImage);
           }
  @@ -107,7 +114,7 @@
           }
           catch (Exception e)
           {
  -            Runtime.error ("Parser Error: " + templateName + " : " + 
StringUtils.stackTrace(e));
  +            rsvc.error ("Parser Error: " + templateName + " : " + 
StringUtils.stackTrace(e));
           }
   
           currentTemplateName = "";
  @@ -164,7 +171,7 @@
           {
              bRecognizedDirective = true;
           }
  -        else if (Runtime.isVelocimacro( strDirective.substring(1), 
currentTemplateName))
  +        else if ( rsvc.isVelocimacro( strDirective.substring(1), 
currentTemplateName))
           {
               bRecognizedDirective = true;
           }
  @@ -389,7 +396,7 @@
   
           if ( isDirective( t.next.image.substring(1)))
               control = true;
  -        else if ( Runtime.isVelocimacro( t.next.image.substring(1), 
currentTemplateName))
  +        else if ( rsvc.isVelocimacro( t.next.image.substring(1), 
currentTemplateName))
               control = true;
   
           t.image = "";
  @@ -591,7 +598,7 @@
                *  if null, then not a real directive, but maybe a Velocimacro
                 */
   
  -            d  =  (Directive) Runtime.getVelocimacro( directiveName, 
currentTemplateName );
  +            d  =  (Directive) rsvc.getVelocimacro( directiveName, 
currentTemplateName );
   
               if (d == null)
               {
  @@ -703,8 +710,8 @@
   
           if ( doItNow )
           {
  -            Macro m = new Macro();
  -            m.processAndRegister( jjtn000, currentTemplateName );
  +            // Macro m = new Macro(  );
  +            Macro.processAndRegister( rsvc, jjtn000, currentTemplateName );
           }
   
           /*
  @@ -2239,18 +2246,6 @@
       return retval;
     }
   
  -  final private boolean jj_3R_33() {
  -    if (jj_3R_36()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_24() {
  -    if (jj_3R_36()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
     final private boolean jj_3R_85() {
       if (jj_scan_token(COMMA)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2259,20 +2254,20 @@
       return false;
     }
   
  -  final private boolean jj_3_5() {
  -    if (jj_3R_27()) return true;
  +  final private boolean jj_3R_32() {
  +    if (jj_3R_35()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_32() {
  +  final private boolean jj_3R_23() {
       if (jj_3R_35()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_23() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3_5() {
  +    if (jj_3R_27()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2295,6 +2290,12 @@
       return false;
     }
   
  +  final private boolean jj_3R_31() {
  +    if (jj_scan_token(WHITESPACE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3R_37() {
       if (jj_scan_token(IDENTIFIER)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2307,7 +2308,7 @@
       return false;
     }
   
  -  final private boolean jj_3R_31() {
  +  final private boolean jj_3R_22() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
  @@ -2329,12 +2330,6 @@
       return false;
     }
   
  -  final private boolean jj_3R_22() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
     final private boolean jj_3R_51() {
       if (jj_scan_token(RCURLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2386,26 +2381,6 @@
       return false;
     }
   
  -  final private boolean jj_3R_53() {
  -    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_27() {
  -    if (jj_3R_37()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(LPAREN)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_38()) 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;
  -    return false;
  -  }
  -
     final private boolean jj_3_3() {
       if (jj_scan_token(LBRACKET)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2427,19 +2402,27 @@
       return false;
     }
   
  -  final private boolean jj_3R_29() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_53() {
  +    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_36() {
  -    if (jj_scan_token(NUMBER_LITERAL)) return true;
  +  final private boolean jj_3R_27() {
  +    if (jj_3R_37()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(LPAREN)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_38()) 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;
       return false;
     }
   
  -  final private boolean jj_3R_72() {
  +  final private boolean jj_3R_48() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
  @@ -2455,26 +2438,32 @@
       return false;
     }
   
  +  final private boolean jj_3R_29() {
  +    if (jj_scan_token(WHITESPACE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3R_46() {
       if (jj_3R_57()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_48() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_36() {
  +    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_45() {
  -    if (jj_3R_56()) return true;
  +  final private boolean jj_3R_72() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_82() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_45() {
  +    if (jj_3R_56()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2503,6 +2492,12 @@
       return false;
     }
   
  +  final private boolean jj_3R_82() {
  +    if (jj_scan_token(WHITESPACE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3R_65() {
       if (jj_3R_57()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2533,54 +2528,26 @@
       return false;
     }
   
  -  final private boolean jj_3R_40() {
  -    if (jj_3R_53()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
     final private boolean jj_3R_62() {
       if (jj_3R_54()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_61() {
  +  final private boolean jj_3R_40() {
       if (jj_3R_53()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_74() {
  -    if (jj_3R_36()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
     final private boolean jj_3R_39() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_105() {
  -    if (jj_scan_token(MODULUS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_30()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_70() {
  -    if (jj_3R_36()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_79() {
  -    if (jj_scan_token(COMMA)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_52()) return true;
  +  final private boolean jj_3R_61() {
  +    if (jj_3R_53()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2620,6 +2587,34 @@
       return false;
     }
   
  +  final private boolean jj_3R_74() {
  +    if (jj_3R_36()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_105() {
  +    if (jj_scan_token(MODULUS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_30()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_70() {
  +    if (jj_3R_36()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_79() {
  +    if (jj_scan_token(COMMA)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_52()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3R_104() {
       if (jj_scan_token(DIVIDE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -3011,6 +3006,12 @@
       return false;
     }
   
  +  final private boolean jj_3R_21() {
  +    if (jj_scan_token(WHITESPACE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3R_80() {
       if (jj_3R_28()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -3027,12 +3028,6 @@
       return false;
     }
   
  -  final private boolean jj_3R_21() {
  -    if (jj_scan_token(WHITESPACE)) 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;
  @@ -3056,14 +3051,20 @@
       return false;
     }
   
  +  final private boolean jj_3R_19() {
  +    if (jj_3R_35()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     final private boolean jj_3_6() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_19() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3R_34() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -3074,7 +3075,7 @@
       return false;
     }
   
  -  final private boolean jj_3R_34() {
  +  final private boolean jj_3R_25() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
  @@ -3086,14 +3087,14 @@
       return false;
     }
   
  -  final private boolean jj_3R_25() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_26() {
  +    if (jj_3R_37()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_26() {
  -    if (jj_3R_37()) return true;
  +  final private boolean jj_3R_33() {
  +    if (jj_3R_36()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -3115,6 +3116,12 @@
       if (jj_3R_21()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_scan_token(DOUBLEDOT)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_24() {
  +    if (jj_3R_36()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  
  
  
  1.63      +37 -30    
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.62
  retrieving revision 1.63
  diff -u -r1.62 -r1.63
  --- Parser.jj 2001/07/18 03:50:45     1.62
  +++ Parser.jj 2001/08/07 21:57:28     1.63
  @@ -95,7 +95,7 @@
   import java.io.*;
   import java.util.*;
   
  -import org.apache.velocity.runtime.Runtime;
  +import org.apache.velocity.runtime.RuntimeServices;
   import org.apache.velocity.runtime.parser.node.*;
   import org.apache.velocity.runtime.directive.Directive;
   import org.apache.velocity.runtime.directive.Macro;
  @@ -112,7 +112,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.62 2001/07/18 03:50:45 geirm Exp $ 
  + * @version $Id: Parser.jj,v 1.63 2001/08/07 21:57:28 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
   {/*@bgen(jjtree)*/
  @@ -131,6 +131,8 @@
   
       VelocityCharStream velcharstream = null; 
   
  +    private RuntimeServices rsvc = null;
  +
       /** 
        * This constructor was added to allow the re-use of parsers.
        * The normal constructor takes a single argument which 
  @@ -138,7 +140,7 @@
        * object, we satisfy the requirement of an InputStream
        * by using a newline character as an input stream.
        */
  -    public Parser()
  +    public Parser( RuntimeServices rs)
       {
           /*
            * need to call the CTOR first thing.
  @@ -152,6 +154,11 @@
            */    
           velcharstream = new VelocityCharStream( 
                   new ByteArrayInputStream("\n".getBytes()), 1, 1 );
  +
  +        /*
  +         *  and save the RuntimeServices
  +         */
  +        rsvc = rs;
       }
   
       /** 
  @@ -192,7 +199,7 @@
           }
           catch (ParseException pe)
           {
  -            Runtime.error ("Parser Exception: " + templateName + " : " + 
StringUtils.stackTrace(pe));
  +            rsvc.error ("Parser Exception: " + templateName + " : " + 
StringUtils.stackTrace(pe));
               throw new ParseException (pe.currentToken, 
                   pe.expectedTokenSequences, pe.tokenImage);
           }
  @@ -202,7 +209,7 @@
           }
           catch (Exception e)
           {
  -            Runtime.error ("Parser Error: " + templateName + " : " + 
StringUtils.stackTrace(e));
  +            rsvc.error ("Parser Error: " + templateName + " : " + 
StringUtils.stackTrace(e));
           }
   
           currentTemplateName = "";
  @@ -259,7 +266,7 @@
           {
              bRecognizedDirective = true;
           }
  -        else if (Runtime.isVelocimacro( strDirective.substring(1), 
currentTemplateName))
  +        else if ( rsvc.isVelocimacro( strDirective.substring(1), 
currentTemplateName))
           {
               bRecognizedDirective = true;
           }
  @@ -1130,7 +1137,7 @@
   
           if ( isDirective( t.next.image.substring(1)))
               control = true;
  -        else if ( Runtime.isVelocimacro( t.next.image.substring(1), 
currentTemplateName))
  +        else if ( rsvc.isVelocimacro( t.next.image.substring(1), 
currentTemplateName))
               control = true;
   
           t.image = "";
  @@ -1257,7 +1264,7 @@
   |   Word()  
   |   StringLiteral()
   |   NumberLiteral()
  -|   LOOKAHEAD(  <LBRACKET> [<WHITESPACE>] ( Reference() | NumberLiteral()) 
[<WHITESPACE>] <DOUBLEDOT> ) IntegerRange()
  +|   LOOKAHEAD(  <LBRACKET> [<WHITESPACE>]    ( Reference() | NumberLiteral())     
[<WHITESPACE>] <DOUBLEDOT> ) IntegerRange()    
   |   ObjectArray()
   |   True()
   |   False()
  @@ -1315,7 +1322,7 @@
                *  if null, then not a real directive, but maybe a Velocimacro
                 */
   
  -            d  =  (Directive) Runtime.getVelocimacro( directiveName, 
currentTemplateName );
  +            d  =  (Directive) rsvc.getVelocimacro( directiveName, 
currentTemplateName );
   
               if (d == null) 
               {   
  @@ -1391,8 +1398,8 @@
         
           if ( doItNow )  
           {
  -            Macro m = new Macro();
  -            m.processAndRegister( jjtn000, currentTemplateName );
  +            // Macro m = new Macro(  );
  +            Macro.processAndRegister( rsvc, jjtn000, currentTemplateName );
           }
   
           /*
  @@ -1505,13 +1512,13 @@
       [<WHITESPACE>]
       (
           StringLiteral()
  -      | LOOKAHEAD(  <LBRACKET> [<WHITESPACE>] ( Reference() | NumberLiteral()) 
[<WHITESPACE>] <DOUBLEDOT> ) IntegerRange()
  -      | ObjectArray()
  -      | True()
  -      | False()
  -      | Reference()
  -      | NumberLiteral()
  -    )
  +        | LOOKAHEAD(  <LBRACKET> [<WHITESPACE>]    ( Reference() | NumberLiteral()) 
    [<WHITESPACE>] <DOUBLEDOT> ) IntegerRange()       
  +        | ObjectArray()
  +        | True()
  +        | False()
  +        | Reference()
  +        | NumberLiteral()
  +        )
       [ <WHITESPACE>]
   }
   
  @@ -2402,18 +2409,18 @@
   
   void PrimaryExpression()       : {}
   {  
  -[<WHITESPACE>] 
  -(  
  -    StringLiteral()
  -  | NumberLiteral()    
  -  | Reference()
  -  | LOOKAHEAD(  <LBRACKET> [<WHITESPACE>] ( Reference() | NumberLiteral()) 
[<WHITESPACE>] <DOUBLEDOT> ) IntegerRange()
  -  | ObjectArray()
  -  | True()
  -  | False()
  -  | <LPAREN>  Expression()  <RPAREN>
  -)
  -[<WHITESPACE>]
  +    [<WHITESPACE>] 
  +    (  
  +     StringLiteral()
  +    | NumberLiteral()    
  +    | Reference()
  +    | LOOKAHEAD(  <LBRACKET> [<WHITESPACE>]    ( Reference() | NumberLiteral())     
[<WHITESPACE>] <DOUBLEDOT> ) IntegerRange()     
  +    | ObjectArray()
  +    | True()
  +    | False()
  +    | <LPAREN>  Expression()  <RPAREN>
  +     )
  +    [<WHITESPACE>]
   }
   
   
  
  
  
  1.46      +1 -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.45
  retrieving revision 1.46
  diff -u -r1.45 -r1.46
  --- ParserTokenManager.java   2001/06/29 23:32:49     1.45
  +++ ParserTokenManager.java   2001/08/07 21:57:28     1.46
  @@ -2,7 +2,7 @@
   package org.apache.velocity.runtime.parser;
   import java.io.*;
   import java.util.*;
  -import org.apache.velocity.runtime.Runtime;
  +import org.apache.velocity.runtime.RuntimeServices;
   import org.apache.velocity.runtime.parser.node.*;
   import org.apache.velocity.runtime.directive.Directive;
   import org.apache.velocity.runtime.directive.Macro;
  
  
  

Reply via email to