geirm       00/12/07 19:19:24

  Modified:    src/java/org/apache/velocity/runtime/parser Parser.java
                        Parser.jj
  Log:
  Usual parser.jjt followers.
  
  Revision  Changes    Path
  1.40      +372 -309  
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.39
  retrieving revision 1.40
  diff -u -r1.39 -r1.40
  --- Parser.java       2000/12/06 19:50:04     1.39
  +++ Parser.java       2000/12/08 03:19:23     1.40
  @@ -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.39 2000/12/06 19:50:04 geirm Exp $ 
  + * @version $Id: Parser.java,v 1.40 2000/12/08 03:19:23 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants 
{/*@bgen(jjtree)*/
     protected JJTParserState jjtree = new JJTParserState();/**
  @@ -1298,6 +1298,11 @@
       }
     }
   
  +/**
  + *  Currently support both types of set :
  + *   #set( expr )
  + *   #set expr
  + */
     final public void SetDirective() throws ParseException {
                          /*@bgen(jjtree) SetDirective */
     ASTSetDirective jjtn000 = new ASTSetDirective(this, JJTSETDIRECTIVE);
  @@ -1305,33 +1310,61 @@
     jjtree.openNodeScope(jjtn000);
       try {
         jj_consume_token(SET_DIRECTIVE);
  -      Expression();
  -      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -      case NEWLINE:
  -        jj_consume_token(NEWLINE);
  -        break;
  -      default:
  -        jj_la1[27] = jj_gen;
  +      if (jj_2_4(2)) {
  +        jj_consume_token(WHITESPACE);
  +      } else {
           ;
         }
  +      if (jj_2_5(2)) {
  +        jj_consume_token(LPAREN);
  +        Expression();
  +        jj_consume_token(RPAREN);
  +      } else {
  +        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  +        case LBRACKET:
  +        case LPAREN:
  +        case WHITESPACE:
  +        case STRING_LITERAL:
  +        case TRUE:
  +        case FALSE:
  +        case LOGICAL_NOT:
  +        case NUMBER_LITERAL:
  +        case IDENTIFIER:
  +        case LCURLY:
  +          Expression();
  +          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  +          case NEWLINE:
  +            jj_consume_token(NEWLINE);
  +            break;
  +          default:
  +            jj_la1[27] = jj_gen;
  +            ;
  +          }
  +          break;
  +        default:
  +          jj_la1[28] = jj_gen;
  +          jj_consume_token(-1);
  +          throw new ParseException();
  +        }
  +      }
       } catch (Throwable jjte000) {
  -     if (jjtc000) {
  -       jjtree.clearNodeScope(jjtn000);
  -       jjtc000 = false;
  -     } else {
  -       jjtree.popNode();
  -     }
  -     if (jjte000 instanceof RuntimeException) {
  -       {if (true) throw (RuntimeException)jjte000;}
  -     }
  -     if (jjte000 instanceof ParseException) {
  -       {if (true) throw (ParseException)jjte000;}
  -     }
  -     {if (true) throw (Error)jjte000;}
  +      if (jjtc000) {
  +        jjtree.clearNodeScope(jjtn000);
  +        jjtc000 = false;
  +      } else {
  +        jjtree.popNode();
  +      }
  +      if (jjte000 instanceof RuntimeException) {
  +        {if (true) throw (RuntimeException)jjte000;}
  +      }
  +      if (jjte000 instanceof ParseException) {
  +        {if (true) throw (ParseException)jjte000;}
  +      }
  +      {if (true) throw (Error)jjte000;}
       } finally {
  -     if (jjtc000) {
  -       jjtree.closeNodeScope(jjtn000, true);
  -     }
  +      if (jjtc000) {
  +        jjtree.closeNodeScope(jjtn000, true);
  +      }
       }
     }
   
  @@ -1357,7 +1390,7 @@
     boolean jjtc000 = true;
     jjtree.openNodeScope(jjtn000);
       try {
  -      if (jj_2_4(2147483647)) {
  +      if (jj_2_6(2147483647)) {
           Assignment();
         } else {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1374,7 +1407,7 @@
             ConditionalOrExpression();
             break;
           default:
  -          jj_la1[28] = jj_gen;
  +          jj_la1[29] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
           }
  @@ -1439,7 +1472,7 @@
           ;
           break;
         default:
  -        jj_la1[29] = jj_gen;
  +        jj_la1[30] = jj_gen;
           break label_12;
         }
         jj_consume_token(LOGICAL_OR);
  @@ -1479,7 +1512,7 @@
           ;
           break;
         default:
  -        jj_la1[30] = jj_gen;
  +        jj_la1[31] = jj_gen;
           break label_13;
         }
         jj_consume_token(LOGICAL_AND);
  @@ -1520,7 +1553,7 @@
           ;
           break;
         default:
  -        jj_la1[31] = jj_gen;
  +        jj_la1[32] = jj_gen;
           break label_14;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1579,7 +1612,7 @@
           }
           break;
         default:
  -        jj_la1[32] = jj_gen;
  +        jj_la1[33] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -1598,7 +1631,7 @@
           ;
           break;
         default:
  -        jj_la1[33] = jj_gen;
  +        jj_la1[34] = jj_gen;
           break label_15;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1711,7 +1744,7 @@
           }
           break;
         default:
  -        jj_la1[34] = jj_gen;
  +        jj_la1[35] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -1728,7 +1761,7 @@
           ;
           break;
         default:
  -        jj_la1[35] = jj_gen;
  +        jj_la1[36] = jj_gen;
           break label_16;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1787,7 +1820,7 @@
           }
           break;
         default:
  -        jj_la1[36] = jj_gen;
  +        jj_la1[37] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -1805,7 +1838,7 @@
           ;
           break;
         default:
  -        jj_la1[37] = jj_gen;
  +        jj_la1[38] = jj_gen;
           break label_17;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1891,7 +1924,7 @@
           }
           break;
         default:
  -        jj_la1[38] = jj_gen;
  +        jj_la1[39] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -1939,7 +1972,7 @@
         PrimaryExpression();
         break;
       default:
  -      jj_la1[39] = jj_gen;
  +      jj_la1[40] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
  @@ -1951,7 +1984,7 @@
         jj_consume_token(WHITESPACE);
         break;
       default:
  -      jj_la1[40] = jj_gen;
  +      jj_la1[41] = jj_gen;
         ;
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1980,7 +2013,7 @@
         jj_consume_token(RPAREN);
         break;
       default:
  -      jj_la1[41] = jj_gen;
  +      jj_la1[42] = jj_gen;
         jj_consume_token(-1);
         throw new ParseException();
       }
  @@ -1989,7 +2022,7 @@
         jj_consume_token(WHITESPACE);
         break;
       default:
  -      jj_la1[42] = jj_gen;
  +      jj_la1[43] = jj_gen;
         ;
       }
     }
  @@ -2022,46 +2055,77 @@
       return retval;
     }
   
  -  final private boolean jj_3R_64() {
  -    if (jj_3R_68()) return true;
  +  final private boolean jj_2_5(int xla) {
  +    jj_la = xla; jj_lastpos = jj_scanpos = token;
  +    boolean retval = !jj_3_5();
  +    jj_save(4, xla);
  +    return retval;
  +  }
  +
  +  final private boolean jj_2_6(int xla) {
  +    jj_la = xla; jj_lastpos = jj_scanpos = token;
  +    boolean retval = !jj_3_6();
  +    jj_save(5, xla);
  +    return retval;
  +  }
  +
  +  final private boolean jj_3R_73() {
  +    if (jj_scan_token(LOGICAL_LT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_69()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
  +    if (jj_3R_61()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_73() {
  -    if (jj_scan_token(LOGICAL_GE)) return true;
  +  final private boolean jj_3R_67() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_73()) {
  +    jj_scanpos = xsp;
  +    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;
  -    if (jj_3R_64()) return true;
  +    } 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_58() {
  +    if (jj_3R_61()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_67()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_72() {
  -    if (jj_scan_token(LOGICAL_LE)) return true;
  +  final private boolean jj_3R_64() {
  +    if (jj_scan_token(COMMA)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_64()) return true;
  +    if (jj_3R_35()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_71() {
  -    if (jj_scan_token(LOGICAL_GT)) return true;
  +  final private boolean jj_3R_69() {
  +    if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_64()) return true;
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_70() {
  -    if (jj_scan_token(LOGICAL_LT)) return true;
  +  final private boolean jj_3R_68() {
  +    if (jj_scan_token(LOGICAL_EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_64()) return true;
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2069,36 +2133,28 @@
     final private boolean jj_3R_65() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_70()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_71()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_72()) {
  +    if (jj_3R_68()) {
       jj_scanpos = xsp;
  -    if (jj_3R_73()) return true;
  +    if (jj_3R_69()) 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;
       return false;
     }
   
  -  final private boolean jj_3R_61() {
  -    if (jj_scan_token(COMMA)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_32()) return true;
  +  final private boolean jj_3R_22() {
  +    if (jj_scan_token(IDENTIFIER)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_21() {
  -    if (jj_scan_token(IDENTIFIER)) return true;
  +  final private boolean jj_3_3() {
  +    if (jj_3R_19()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_62() {
  -    if (jj_3R_64()) return true;
  +  final private boolean jj_3R_55() {
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
  @@ -2108,112 +2164,87 @@
       }
       return false;
     }
  -
  -  final private boolean jj_3_3() {
  -    if (jj_3R_19()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_67() {
  -    if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_62()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
   
  -  final private boolean jj_3R_66() {
  -    if (jj_scan_token(LOGICAL_EQUALS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_62()) return true;
  +  final private boolean jj_3R_62() {
  +    if (jj_scan_token(LOGICAL_AND)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_63() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_66()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_67()) return true;
  +    if (jj_3R_55()) 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_59() {
  -    if (jj_3R_62()) return true;
  +  final private boolean jj_3R_23() {
  +    if (jj_3R_35()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_63()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_64()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_22() {
  -    if (jj_3R_32()) return true;
  +  final private boolean jj_3R_51() {
  +    if (jj_3R_55()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_61()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_62()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_38() {
  +  final private boolean jj_3R_43() {
       if (jj_scan_token(FALSE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
     final private boolean jj_3R_60() {
  -    if (jj_scan_token(LOGICAL_AND)) return true;
  +    if (jj_scan_token(LOGICAL_OR)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_59()) return true;
  +    if (jj_3R_51()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_33() {
  +  final private boolean jj_3R_38() {
       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_57() {
  -    if (jj_3R_59()) return true;
  +  final private boolean jj_3_6() {
  +    if (jj_3R_21()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_60()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
  +    if (jj_scan_token(EQUALS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_37() {
  +  final private boolean jj_3R_42() {
       if (jj_scan_token(TRUE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_34() {
  -    if (jj_scan_token(NUMBER_LITERAL)) return true;
  +  final private boolean jj_3R_37() {
  +    if (jj_3R_51()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_60()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_58() {
  -    if (jj_scan_token(LOGICAL_OR)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_57()) return true;
  +  final private boolean jj_3R_39() {
  +    if (jj_scan_token(NUMBER_LITERAL)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2229,62 +2260,48 @@
       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_52()) jj_scanpos = xsp;
  +    if (jj_3R_56()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  -
  -  final private boolean jj_3R_48() {
  -    if (jj_scan_token(RCURLY)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
   
  -  final private boolean jj_3_4() {
  -    if (jj_3R_20()) return true;
  +  final private boolean jj_3R_36() {
  +    if (jj_3R_21()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_scan_token(EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_20()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_55() {
  -    if (jj_3R_57()) return true;
  +  final private boolean jj_3R_53() {
  +    if (jj_scan_token(RCURLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_58()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
       return false;
     }
   
  -  final private boolean jj_3R_47() {
  +  final private boolean jj_3R_52() {
       if (jj_scan_token(LCURLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_54() {
  -    if (jj_3R_20()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(EQUALS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_39()) return true;
  +  final private boolean jj_3R_25() {
  +    if (jj_3R_37()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_35() {
  +  final private boolean jj_3R_40() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_47()) jj_scanpos = xsp;
  +    if (jj_3R_52()) 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_48()) jj_scanpos = xsp;
  +    if (jj_3R_53()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       while (true) {
         xsp = jj_scanpos;
  @@ -2294,249 +2311,239 @@
       return false;
     }
   
  -  final private boolean jj_3R_51() {
  -    if (jj_3R_55()) return true;
  +  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_50() {
  -    if (jj_3R_54()) return true;
  +  final private boolean jj_3R_20() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_24()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_25()) 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_19() {
  -    if (jj_3R_21()) return true;
  +    if (jj_3R_22()) 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_22()) jj_scanpos = xsp;
  +    if (jj_3R_23()) 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_39() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_50()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_51()) 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_53() {
  +  final private boolean jj_3R_57() {
       if (jj_scan_token(COMMA)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_32()) return true;
  +    if (jj_3R_35()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_46() {
  -    if (jj_3R_34()) return true;
  +  final private boolean jj_3R_50() {
  +    if (jj_3R_39()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_56() {
  +  final private boolean jj_3R_59() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_45() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3R_49() {
  +    if (jj_3R_40()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_44() {
  -    if (jj_3R_38()) return true;
  +  final private boolean jj_3R_48() {
  +    if (jj_3R_43()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_43() {
  -    if (jj_3R_37()) return true;
  +  final private boolean jj_3R_47() {
  +    if (jj_3R_42()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_42() {
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_46() {
  +    if (jj_3R_41()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_41() {
  -    if (jj_3R_33()) return true;
  +  final private boolean jj_3R_45() {
  +    if (jj_3R_38()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_49() {
  -    if (jj_3R_32()) return true;
  +  final private boolean jj_3R_33() {
  +    if (jj_scan_token(LPAREN)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_53()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_40() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +    if (jj_3R_20()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(RPAREN)) 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_40()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    xsp = jj_scanpos;
  -    if (jj_3R_41()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_42()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_43()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_44()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_45()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_46()) return true;
  +    if (jj_3R_43()) 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;
  -    xsp = jj_scanpos;
  -    if (jj_3R_56()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_30() {
  -    if (jj_scan_token(LPAREN)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_39()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(RPAREN)) 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;
     }
   
  -  final private boolean jj_3R_29() {
  -    if (jj_3R_38()) return true;
  +  final private boolean jj_3R_31() {
  +    if (jj_3R_42()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_31() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_54() {
  +    if (jj_3R_35()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_57()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_28() {
  -    if (jj_3R_37()) return true;
  +  final private boolean jj_3_5() {
  +    if (jj_scan_token(LPAREN)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_20()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_27() {
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_30() {
  +    if (jj_3R_41()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_26() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3R_29() {
  +    if (jj_3R_40()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_52() {
  -    if (jj_scan_token(RCURLY)) return true;
  +  final private boolean jj_3_4() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_25() {
  -    if (jj_3R_34()) return true;
  +  final private boolean jj_3R_44() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_24() {
  -    if (jj_3R_33()) return true;
  +  final private boolean jj_3R_28() {
  +    if (jj_3R_39()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_36() {
  -    if (jj_scan_token(LBRACKET)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +  final private boolean jj_3R_35() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_49()) jj_scanpos = xsp;
  +    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;
  +    xsp = jj_scanpos;
  +    if (jj_3R_45()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_46()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_47()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_48()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_49()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_50()) 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;
  +    xsp = jj_scanpos;
  +    if (jj_3R_59()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_23() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_27() {
  +    if (jj_3R_38()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_82() {
  -    if (jj_scan_token(MODULUS)) return true;
  +  final private boolean jj_3R_56() {
  +    if (jj_scan_token(RCURLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_74()) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_26() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_1() {
  -    if (jj_scan_token(DOUBLE_ESCAPE)) return true;
  +  final private boolean jj_3R_82() {
  +    if (jj_scan_token(MODULUS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_66()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_20() {
  +  final private boolean jj_3R_21() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_23()) jj_scanpos = xsp;
  +    if (jj_3R_26()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       xsp = jj_scanpos;
  -    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()) {
       jj_scanpos = xsp;
       if (jj_3R_29()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_30()) {
       jj_scanpos = xsp;
  -    if (jj_3R_30()) return true;
  +    if (jj_3R_31()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_32()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_33()) 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;
  @@ -2545,7 +2552,7 @@
       } else 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_31()) jj_scanpos = xsp;
  +    if (jj_3R_34()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2553,34 +2560,26 @@
     final private boolean jj_3R_81() {
       if (jj_scan_token(DIVIDE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_74()) return true;
  +    if (jj_3R_66()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_79() {
  -    if (jj_3R_20()) return true;
  +  final private boolean jj_3R_71() {
  +    if (jj_3R_21()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
     final private boolean jj_3R_80() {
       if (jj_scan_token(MULTIPLY)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_74()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_78() {
  -    if (jj_scan_token(LOGICAL_NOT)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_74()) return true;
  +    if (jj_3R_66()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_75() {
  +  final private boolean jj_3R_77() {
       Token xsp;
       xsp = jj_scanpos;
       if (jj_3R_80()) {
  @@ -2594,62 +2593,124 @@
       return false;
     }
   
  -  final private boolean jj_3R_74() {
  +  final private boolean jj_3R_70() {
  +    if (jj_scan_token(LOGICAL_NOT)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_66()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_66() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_78()) {
  +    if (jj_3R_70()) {
       jj_scanpos = xsp;
  -    if (jj_3R_79()) return true;
  +    if (jj_3R_71()) 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_18() {
  -    if (jj_3R_21()) return true;
  +  final private boolean jj_3R_41() {
  +    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_54()) 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_68() {
  -    if (jj_3R_74()) return true;
  +  final private boolean jj_3_1() {
  +    if (jj_scan_token(DOUBLE_ESCAPE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_63() {
  +    if (jj_3R_66()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_75()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_77()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_77() {
  +  final private boolean jj_3R_79() {
       if (jj_scan_token(MINUS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_68()) return true;
  +    if (jj_3R_63()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_76() {
  +  final private boolean jj_3R_78() {
       if (jj_scan_token(PLUS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_68()) return true;
  +    if (jj_3R_63()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_69() {
  +  final private boolean jj_3R_72() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_76()) {
  +    if (jj_3R_78()) {
       jj_scanpos = xsp;
  -    if (jj_3R_77()) return true;
  +    if (jj_3R_79()) 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_18() {
  +    if (jj_3R_22()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_61() {
  +    if (jj_3R_63()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_72()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_76() {
  +    if (jj_scan_token(LOGICAL_GE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_61()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_75() {
  +    if (jj_scan_token(LOGICAL_LE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_61()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_74() {
  +    if (jj_scan_token(LOGICAL_GT)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_61()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
     public ParserTokenManager token_source;
     ASCII_CharStream jj_input_stream;
     public Token token, jj_nt;
  @@ -2659,10 +2720,10 @@
     public boolean lookingAhead = false;
     private boolean jj_semLA;
     private int jj_gen;
  -  final private int[] jj_la1 = new int[43];
  -  final private int[] jj_la1_0 = 
{0x9f81b0,0x9f81b0,0x1c0000,0xc00002,0x400000,0xc00002,0x9f81b0,0x8,0x3c00002,0x400000,0x3800002,0x400000,0x8,0x3c00002,0x0,0x0,0x0,0x0,0x830030,0x400000,0x9f81b0,0x0,0x0,0x0,0x9f81b0,0x400000,0x9f81b0,0x4000000,0x3c00012,0x0,0x0,0x0,0x0,0x0,0x0,0x18000000,0x18000000,0xe0000000,0xe0000000,0x3c00012,0x400000,0x3800012,0x400000,};
  -  final private int[] jj_la1_1 = 
{0x1c54800,0x1c54800,0x0,0x1450000,0x0,0x1450000,0x1c54800,0x0,0x1410000,0x0,0x1410000,0x0,0x0,0x1410000,0x1000000,0x2000000,0x400000,0x2000000,0x810000,0x0,0x1c54800,0x1000,0x1000,0x2000,0x1c54800,0x0,0x1c54800,0x0,0x1410100,0x2,0x1,0xc0,0xc0,0x3c,0x3c,0x0,0x0,0x0,0x0,0x1410100,0x0,0x1410000,0x0,};
  -  final private JJCalls[] jj_2_rtns = new JJCalls[4];
  +  final private int[] jj_la1 = new int[44];
  +  final private int[] jj_la1_0 = 
{0x9f81b0,0x9f81b0,0x1c0000,0xc00002,0x400000,0xc00002,0x9f81b0,0x8,0x3c00002,0x400000,0x3800002,0x400000,0x8,0x3c00002,0x0,0x0,0x0,0x0,0x830030,0x400000,0x9f81b0,0x0,0x0,0x0,0x9f81b0,0x400000,0x9f81b0,0x4000000,0x3c00012,0x3c00012,0x0,0x0,0x0,0x0,0x0,0x0,0x18000000,0x18000000,0xe0000000,0xe0000000,0x3c00012,0x400000,0x3800012,0x400000,};
  +  final private int[] jj_la1_1 = 
{0x1c54800,0x1c54800,0x0,0x1450000,0x0,0x1450000,0x1c54800,0x0,0x1410000,0x0,0x1410000,0x0,0x0,0x1410000,0x1000000,0x2000000,0x400000,0x2000000,0x810000,0x0,0x1c54800,0x1000,0x1000,0x2000,0x1c54800,0x0,0x1c54800,0x0,0x1410100,0x1410100,0x2,0x1,0xc0,0xc0,0x3c,0x3c,0x0,0x0,0x0,0x0,0x1410100,0x0,0x1410000,0x0,};
  +  final private JJCalls[] jj_2_rtns = new JJCalls[6];
     private boolean jj_rescan = false;
     private int jj_gc = 0;
   
  @@ -2672,7 +2733,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 43; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2683,7 +2744,7 @@
       jj_ntk = -1;
       jjtree.reset();
       jj_gen = 0;
  -    for (int i = 0; i < 43; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2693,7 +2754,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 43; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2704,7 +2765,7 @@
       jj_ntk = -1;
       jjtree.reset();
       jj_gen = 0;
  -    for (int i = 0; i < 43; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2713,7 +2774,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 43; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2723,7 +2784,7 @@
       jj_ntk = -1;
       jjtree.reset();
       jj_gen = 0;
  -    for (int i = 0; i < 43; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 44; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2838,7 +2899,7 @@
         la1tokens[jj_kind] = true;
         jj_kind = -1;
       }
  -    for (int i = 0; i < 43; i++) {
  +    for (int i = 0; i < 44; i++) {
         if (jj_la1[i] == jj_gen) {
           for (int j = 0; j < 32; j++) {
             if ((jj_la1_0[i] & (1<<j)) != 0) {
  @@ -2875,7 +2936,7 @@
   
     final private void jj_rescan_token() {
       jj_rescan = true;
  -    for (int i = 0; i < 4; i++) {
  +    for (int i = 0; i < 6; i++) {
         JJCalls p = jj_2_rtns[i];
         do {
           if (p.gen > jj_gen) {
  @@ -2885,6 +2946,8 @@
               case 1: jj_3_2(); break;
               case 2: jj_3_3(); break;
               case 3: jj_3_4(); break;
  +            case 4: jj_3_5(); break;
  +            case 5: jj_3_6(); break;
             }
           }
           p = p.next;
  
  
  
  1.38      +29 -23    
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.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- Parser.jj 2000/12/06 19:50:05     1.37
  +++ Parser.jj 2000/12/08 03:19:23     1.38
  @@ -96,7 +96,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.37 2000/12/06 19:50:05 geirm Exp $ 
  + * @version $Id: Parser.jj,v 1.38 2000/12/08 03:19:23 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
   {/*@bgen(jjtree)*/
  @@ -1710,37 +1710,43 @@
   /*@egen*/
   }
   
  +/**
  + *  Currently support both types of set :
  + *   #set( expr )
  + *   #set expr
  + */
   void SetDirective() : {/*@bgen(jjtree) SetDirective */
     ASTSetDirective jjtn000 = new ASTSetDirective(this, JJTSETDIRECTIVE);
     boolean jjtc000 = true;
     jjtree.openNodeScope(jjtn000);
   /*@egen*/}
   {/*@bgen(jjtree) SetDirective */
  -   try {
  +    try {
   /*@egen*/
  -   (  <SET_DIRECTIVE>  Expression()  [<NEWLINE>] )/*@bgen(jjtree)*/
  -   } catch (Throwable jjte000) {
  -     if (jjtc000) {
  -       jjtree.clearNodeScope(jjtn000);
  -       jjtc000 = false;
  -     } else {
  -       jjtree.popNode();
  -     }
  -     if (jjte000 instanceof RuntimeException) {
  -       throw (RuntimeException)jjte000;
  -     }
  -     if (jjte000 instanceof ParseException) {
  -       throw (ParseException)jjte000;
  -     }
  -     throw (Error)jjte000;
  -   } finally {
  -     if (jjtc000) {
  -       jjtree.closeNodeScope(jjtn000, true);
  -     }
  -   }
  +    <SET_DIRECTIVE>  
  +    [ LOOKAHEAD(2) <WHITESPACE> ] 
  +    ( LOOKAHEAD(2) ( <LPAREN> Expression() <RPAREN> ) | ( Expression() [<NEWLINE>]) 
)/*@bgen(jjtree)*/
  +    } catch (Throwable jjte000) {
  +      if (jjtc000) {
  +        jjtree.clearNodeScope(jjtn000);
  +        jjtc000 = false;
  +      } else {
  +        jjtree.popNode();
  +      }
  +      if (jjte000 instanceof RuntimeException) {
  +        throw (RuntimeException)jjte000;
  +      }
  +      if (jjte000 instanceof ParseException) {
  +        throw (ParseException)jjte000;
  +      }
  +      throw (Error)jjte000;
  +    } finally {
  +      if (jjtc000) {
  +        jjtree.closeNodeScope(jjtn000, true);
  +      }
  +    }
   /*@egen*/
   }    
  -
   
   /**
    * This method corresponds to the #stop
  
  
  

Reply via email to