You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by ge...@apache.org on 2001/11/08 03:41:57 UTC

cvs commit: jakarta-velocity/src/java/org/apache/velocity/runtime/parser CharStream.java ParseException.java Parser.java Parser.jj ParserTokenManager.java Token.java TokenMgrError.java

geirm       01/11/07 18:41:57

  Modified:    src/java/org/apache/velocity/runtime/parser Tag:
                        VEL_1_2_BRANCH CharStream.java ParseException.java
                        Parser.java Parser.jj ParserTokenManager.java
                        Token.java TokenMgrError.java
  Log:
  Parser.jjt followers for backport of fixes
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.4.1   +1 -1      jakarta-velocity/src/java/org/apache/velocity/runtime/parser/CharStream.java
  
  Index: CharStream.java
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/CharStream.java,v
  retrieving revision 1.1
  retrieving revision 1.1.4.1
  diff -u -r1.1 -r1.1.4.1
  --- CharStream.java	2001/05/30 06:06:43	1.1
  +++ CharStream.java	2001/11/08 02:41:56	1.1.4.1
  @@ -1,4 +1,4 @@
  -/* Generated By:JavaCC: Do not edit this line. CharStream.java Version 0.7pre6 */
  +/* Generated By:JavaCC: Do not edit this line. CharStream.java Version 2.1 */
   package org.apache.velocity.runtime.parser;
   
   /**
  
  
  
  1.2.2.1   +3 -2      jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParseException.java
  
  Index: ParseException.java
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/ParseException.java,v
  retrieving revision 1.2
  retrieving revision 1.2.2.1
  diff -u -r1.2 -r1.2.2.1
  --- ParseException.java	2001/05/30 05:55:22	1.2
  +++ ParseException.java	2001/11/08 02:41:56	1.2.2.1
  @@ -1,4 +1,4 @@
  -/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 0.7pre6 */
  +/* Generated By:JavaCC: Do not edit this line. ParseException.java Version 2.1 */
   package org.apache.velocity.runtime.parser;
   
   /**
  @@ -123,7 +123,8 @@
         retval += add_escapes(tok.image);
         tok = tok.next; 
       }
  -    retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn + "." + eol;
  +    retval += "\" at line " + currentToken.next.beginLine + ", column " + currentToken.next.beginColumn;
  +    retval += "." + eol;
       if (expectedTokenSequences.length == 1) {
         retval += "Was expecting:" + eol + "    ";
       } else {
  
  
  
  1.66.2.1  +568 -485  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.66
  retrieving revision 1.66.2.1
  diff -u -r1.66 -r1.66.2.1
  --- Parser.java	2001/08/13 13:58:03	1.66
  +++ Parser.java	2001/11/08 02:41:56	1.66.2.1
  @@ -19,9 +19,9 @@
    * Please look at the Parser.jjt file which is
    * what controls the generation of this class.
    *
  - * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
  + * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
    * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
  - * @version $Id: Parser.java,v 1.66 2001/08/13 13:58:03 geirm Exp $ 
  + * @version $Id: Parser.java,v 1.66.2.1 2001/11/08 02:41:56 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants, ParserConstants {/*@bgen(jjtree)*/
     protected JJTParserState jjtree = new JJTParserState();/**
  @@ -238,6 +238,7 @@
           case IDENTIFIER:
           case DOT:
           case LCURLY:
  +        case RCURLY:
             ;
             break;
           default:
  @@ -284,40 +285,46 @@
       case STOP_DIRECTIVE:
         StopStatement();
         break;
  -    case IDENTIFIER:
  -    case LCURLY:
  -      Reference();
  -      break;
  -    case SINGLE_LINE_COMMENT:
  -    case FORMAL_COMMENT:
  -    case MULTI_LINE_COMMENT:
  -      Comment();
  -      break;
  -    case SET_DIRECTIVE:
  -      SetDirective();
  -      break;
  -    case ESCAPE_DIRECTIVE:
  -      EscapedDirective();
  -      break;
  -    case DOUBLE_ESCAPE:
  -      Escape();
  -      break;
  -    case WORD:
  -      Directive();
  -      break;
  -    case LPAREN:
  -    case RPAREN:
  -    case ESCAPE:
  -    case TEXT:
  -    case STRING_LITERAL:
  -    case NUMBER_LITERAL:
  -    case DOT:
  -      Text();
  -      break;
       default:
         jj_la1[1] = jj_gen;
  -      jj_consume_token(-1);
  -      throw new ParseException();
  +      if (jj_2_1(2)) {
  +        Reference();
  +      } else {
  +        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  +        case SINGLE_LINE_COMMENT:
  +        case FORMAL_COMMENT:
  +        case MULTI_LINE_COMMENT:
  +          Comment();
  +          break;
  +        case SET_DIRECTIVE:
  +          SetDirective();
  +          break;
  +        case ESCAPE_DIRECTIVE:
  +          EscapedDirective();
  +          break;
  +        case DOUBLE_ESCAPE:
  +          Escape();
  +          break;
  +        case WORD:
  +          Directive();
  +          break;
  +        case LPAREN:
  +        case RPAREN:
  +        case ESCAPE:
  +        case TEXT:
  +        case STRING_LITERAL:
  +        case NUMBER_LITERAL:
  +        case DOT:
  +        case LCURLY:
  +        case RCURLY:
  +          Text();
  +          break;
  +        default:
  +          jj_la1[2] = jj_gen;
  +          jj_consume_token(-1);
  +          throw new ParseException();
  +        }
  +      }
       }
     }
   
  @@ -369,7 +376,7 @@
         while (true) {
           t = jj_consume_token(DOUBLE_ESCAPE);
           count++;
  -        if (jj_2_1(2)) {
  +        if (jj_2_2(2)) {
             ;
           } else {
             break label_2;
  @@ -427,7 +434,7 @@
           jj_consume_token(FORMAL_COMMENT);
           break;
         default:
  -        jj_la1[2] = jj_gen;
  +        jj_la1[3] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -527,8 +534,8 @@
         NumberLiteral();
         break;
       default:
  -      jj_la1[3] = jj_gen;
  -      if (jj_2_2(2147483647)) {
  +      jj_la1[4] = jj_gen;
  +      if (jj_2_3(2147483647)) {
           IntegerRange();
         } else {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -545,7 +552,7 @@
             jj_consume_token(WHITESPACE);
             break;
           default:
  -          jj_la1[4] = jj_gen;
  +          jj_la1[5] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
           }
  @@ -629,7 +636,7 @@
           jj_consume_token(WHITESPACE);
           break;
         default:
  -        jj_la1[5] = jj_gen;
  +        jj_la1[6] = jj_gen;
           ;
         }
         jj_consume_token(LPAREN);
  @@ -648,7 +655,7 @@
             ;
             break;
           default:
  -          jj_la1[6] = jj_gen;
  +          jj_la1[7] = jj_gen;
             break label_3;
           }
           DirectiveArg();
  @@ -682,10 +689,11 @@
             case IDENTIFIER:
             case DOT:
             case LCURLY:
  +          case RCURLY:
               ;
               break;
             default:
  -            jj_la1[7] = jj_gen;
  +            jj_la1[8] = jj_gen;
               break label_4;
             }
           }
  @@ -775,7 +783,7 @@
               ;
               break;
             default:
  -            jj_la1[8] = jj_gen;
  +            jj_la1[9] = jj_gen;
               break label_5;
             }
             jj_consume_token(COMMA);
  @@ -783,7 +791,7 @@
           }
           break;
         default:
  -        jj_la1[9] = jj_gen;
  +        jj_la1[10] = jj_gen;
           ;
         }
         jj_consume_token(RBRACKET);
  @@ -825,7 +833,7 @@
           jj_consume_token(WHITESPACE);
           break;
         default:
  -        jj_la1[10] = jj_gen;
  +        jj_la1[11] = jj_gen;
           ;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -837,7 +845,7 @@
           NumberLiteral();
           break;
         default:
  -        jj_la1[11] = jj_gen;
  +        jj_la1[12] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -846,7 +854,7 @@
           jj_consume_token(WHITESPACE);
           break;
         default:
  -        jj_la1[12] = jj_gen;
  +        jj_la1[13] = jj_gen;
           ;
         }
         jj_consume_token(DOUBLEDOT);
  @@ -855,7 +863,7 @@
           jj_consume_token(WHITESPACE);
           break;
         default:
  -        jj_la1[13] = jj_gen;
  +        jj_la1[14] = jj_gen;
           ;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -867,7 +875,7 @@
           NumberLiteral();
           break;
         default:
  -        jj_la1[14] = jj_gen;
  +        jj_la1[15] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -876,7 +884,7 @@
           jj_consume_token(WHITESPACE);
           break;
         default:
  -        jj_la1[15] = jj_gen;
  +        jj_la1[16] = jj_gen;
           ;
         }
         jj_consume_token(RBRACKET);
  @@ -912,7 +920,7 @@
         jj_consume_token(WHITESPACE);
         break;
       default:
  -      jj_la1[16] = jj_gen;
  +      jj_la1[17] = jj_gen;
         ;
       }
       switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -920,8 +928,8 @@
         StringLiteral();
         break;
       default:
  -      jj_la1[17] = jj_gen;
  -      if (jj_2_3(2147483647)) {
  +      jj_la1[18] = jj_gen;
  +      if (jj_2_4(2147483647)) {
           IntegerRange();
         } else {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -942,7 +950,7 @@
             NumberLiteral();
             break;
           default:
  -          jj_la1[18] = jj_gen;
  +          jj_la1[19] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
           }
  @@ -953,7 +961,7 @@
         jj_consume_token(WHITESPACE);
         break;
       default:
  -      jj_la1[19] = jj_gen;
  +      jj_la1[20] = jj_gen;
         ;
       }
     }
  @@ -988,7 +996,7 @@
               ;
               break;
             default:
  -            jj_la1[20] = jj_gen;
  +            jj_la1[21] = jj_gen;
               break label_6;
             }
             jj_consume_token(COMMA);
  @@ -996,7 +1004,7 @@
           }
           break;
         default:
  -        jj_la1[21] = jj_gen;
  +        jj_la1[22] = jj_gen;
           ;
         }
         jj_consume_token(REFMOD2_RPAREN);
  @@ -1028,70 +1036,81 @@
     jjtree.openNodeScope(jjtn000);
       try {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  +      case IDENTIFIER:
  +        jj_consume_token(IDENTIFIER);
  +        label_7:
  +        while (true) {
  +          if (jj_2_5(2)) {
  +            ;
  +          } else {
  +            break label_7;
  +          }
  +          jj_consume_token(DOT);
  +          if (jj_2_6(3)) {
  +            Method();
  +          } else {
  +            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  +            case IDENTIFIER:
  +              Identifier();
  +              break;
  +            default:
  +              jj_la1[23] = jj_gen;
  +              jj_consume_token(-1);
  +              throw new ParseException();
  +            }
  +          }
  +        }
  +        break;
         case LCURLY:
           jj_consume_token(LCURLY);
  -        break;
  -      default:
  -        jj_la1[22] = jj_gen;
  -        ;
  -      }
  -      jj_consume_token(IDENTIFIER);
  -      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -      case RCURLY:
  +        jj_consume_token(IDENTIFIER);
  +        label_8:
  +        while (true) {
  +          if (jj_2_7(2)) {
  +            ;
  +          } else {
  +            break label_8;
  +          }
  +          jj_consume_token(DOT);
  +          if (jj_2_8(3)) {
  +            Method();
  +          } else {
  +            switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  +            case IDENTIFIER:
  +              Identifier();
  +              break;
  +            default:
  +              jj_la1[24] = jj_gen;
  +              jj_consume_token(-1);
  +              throw new ParseException();
  +            }
  +          }
  +        }
           jj_consume_token(RCURLY);
           break;
         default:
  -        jj_la1[23] = jj_gen;
  -        ;
  +        jj_la1[25] = jj_gen;
  +        jj_consume_token(-1);
  +        throw new ParseException();
         }
  -      label_7:
  -      while (true) {
  -        if (jj_2_4(2)) {
  -          ;
  +    } catch (Throwable jjte000) {
  +        if (jjtc000) {
  +          jjtree.clearNodeScope(jjtn000);
  +          jjtc000 = false;
           } else {
  -          break label_7;
  +          jjtree.popNode();
           }
  -        jj_consume_token(DOT);
  -        if (jj_2_5(3)) {
  -          Method();
  -        } else {
  -          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -          case IDENTIFIER:
  -            Identifier();
  -            break;
  -          default:
  -            jj_la1[24] = jj_gen;
  -            jj_consume_token(-1);
  -            throw new ParseException();
  -          }
  +        if (jjte000 instanceof RuntimeException) {
  +          {if (true) throw (RuntimeException)jjte000;}
           }
  -        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -        case RCURLY:
  -          jj_consume_token(RCURLY);
  -          break;
  -        default:
  -          jj_la1[25] = jj_gen;
  -          ;
  +        if (jjte000 instanceof ParseException) {
  +          {if (true) throw (ParseException)jjte000;}
           }
  -      }
  -    } 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 (true) throw (Error)jjte000;}
       } finally {
  -      if (jjtc000) {
  -        jjtree.closeNodeScope(jjtn000, true);
  -      }
  +        if (jjtc000) {
  +          jjtree.closeNodeScope(jjtn000, true);
  +        }
       }
     }
   
  @@ -1156,6 +1175,12 @@
         case ESCAPE:
           jj_consume_token(ESCAPE);
           break;
  +      case LCURLY:
  +        jj_consume_token(LCURLY);
  +        break;
  +      case RCURLY:
  +        jj_consume_token(RCURLY);
  +        break;
         default:
           jj_la1[26] = jj_gen;
           jj_consume_token(-1);
  @@ -1195,7 +1220,7 @@
         boolean jjtc001 = true;
         jjtree.openNodeScope(jjtn001);
         try {
  -        label_8:
  +        label_9:
           while (true) {
             Statement();
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1217,11 +1242,12 @@
             case IDENTIFIER:
             case DOT:
             case LCURLY:
  +          case RCURLY:
               ;
               break;
             default:
               jj_la1[28] = jj_gen;
  -            break label_8;
  +            break label_9;
             }
           }
         } catch (Throwable jjte001) {
  @@ -1245,7 +1271,7 @@
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case ELSEIF_DIRECTIVE:
  -        label_9:
  +        label_10:
           while (true) {
             ElseIfStatement();
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1254,7 +1280,7 @@
               break;
             default:
               jj_la1[29] = jj_gen;
  -            break label_9;
  +            break label_10;
             }
           }
           break;
  @@ -1303,7 +1329,7 @@
         boolean jjtc001 = true;
         jjtree.openNodeScope(jjtn001);
         try {
  -        label_10:
  +        label_11:
           while (true) {
             Statement();
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1325,11 +1351,12 @@
             case IDENTIFIER:
             case DOT:
             case LCURLY:
  +          case RCURLY:
               ;
               break;
             default:
               jj_la1[32] = jj_gen;
  -            break label_10;
  +            break label_11;
             }
           }
         } catch (Throwable jjte001) {
  @@ -1394,7 +1421,7 @@
         boolean jjtc001 = true;
         jjtree.openNodeScope(jjtn001);
         try {
  -        label_11:
  +        label_12:
           while (true) {
             Statement();
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1416,11 +1443,12 @@
             case IDENTIFIER:
             case DOT:
             case LCURLY:
  +          case RCURLY:
               ;
               break;
             default:
               jj_la1[34] = jj_gen;
  -            break label_11;
  +            break label_12;
             }
           }
         } catch (Throwable jjte001) {
  @@ -1475,7 +1503,7 @@
     jjtree.openNodeScope(jjtn000);
       try {
         jj_consume_token(SET_DIRECTIVE);
  -      if (jj_2_6(2)) {
  +      if (jj_2_9(2)) {
           jj_consume_token(WHITESPACE);
         } else {
           ;
  @@ -1539,7 +1567,7 @@
     boolean jjtc000 = true;
     jjtree.openNodeScope(jjtn000);
       try {
  -      if (jj_2_7(2147483647)) {
  +      if (jj_2_10(2147483647)) {
           Assignment();
         } else {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1614,7 +1642,7 @@
   
     final public void ConditionalOrExpression() throws ParseException {
       ConditionalAndExpression();
  -    label_12:
  +    label_13:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case LOGICAL_OR:
  @@ -1622,7 +1650,7 @@
           break;
         default:
           jj_la1[37] = jj_gen;
  -        break label_12;
  +        break label_13;
         }
         jj_consume_token(LOGICAL_OR);
                        ASTOrNode jjtn001 = new ASTOrNode(this, JJTORNODE);
  @@ -1654,7 +1682,7 @@
   
     final public void ConditionalAndExpression() throws ParseException {
       EqualityExpression();
  -    label_13:
  +    label_14:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case LOGICAL_AND:
  @@ -1662,7 +1690,7 @@
           break;
         default:
           jj_la1[38] = jj_gen;
  -        break label_13;
  +        break label_14;
         }
         jj_consume_token(LOGICAL_AND);
                       ASTAndNode jjtn001 = new ASTAndNode(this, JJTANDNODE);
  @@ -1694,7 +1722,7 @@
   
     final public void EqualityExpression() throws ParseException {
       RelationalExpression();
  -    label_14:
  +    label_15:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case LOGICAL_EQUALS:
  @@ -1703,7 +1731,7 @@
           break;
         default:
           jj_la1[39] = jj_gen;
  -        break label_14;
  +        break label_15;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case LOGICAL_EQUALS:
  @@ -1770,7 +1798,7 @@
   
     final public void RelationalExpression() throws ParseException {
       AdditiveExpression();
  -    label_15:
  +    label_16:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case LOGICAL_LT:
  @@ -1781,7 +1809,7 @@
           break;
         default:
           jj_la1[41] = jj_gen;
  -        break label_15;
  +        break label_16;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case LOGICAL_LT:
  @@ -1902,7 +1930,7 @@
   
     final public void AdditiveExpression() throws ParseException {
       MultiplicativeExpression();
  -    label_16:
  +    label_17:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case MINUS:
  @@ -1911,7 +1939,7 @@
           break;
         default:
           jj_la1[43] = jj_gen;
  -        break label_16;
  +        break label_17;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case PLUS:
  @@ -1978,7 +2006,7 @@
   
     final public void MultiplicativeExpression() throws ParseException {
       UnaryExpression();
  -    label_17:
  +    label_18:
       while (true) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case MULTIPLY:
  @@ -1988,7 +2016,7 @@
           break;
         default:
           jj_la1[45] = jj_gen;
  -        break label_17;
  +        break label_18;
         }
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case MULTIPLY:
  @@ -2081,7 +2109,7 @@
     }
   
     final public void UnaryExpression() throws ParseException {
  -    if (jj_2_8(2)) {
  +    if (jj_2_11(2)) {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case WHITESPACE:
           jj_consume_token(WHITESPACE);
  @@ -2158,7 +2186,7 @@
         break;
       default:
         jj_la1[50] = jj_gen;
  -      if (jj_2_9(2147483647)) {
  +      if (jj_2_12(2147483647)) {
           IntegerRange();
         } else {
           switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -2256,301 +2284,281 @@
       return retval;
     }
   
  -  final private boolean jj_3R_38() {
  -    if (jj_3R_52()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_85()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
  -    return false;
  +  final private boolean jj_2_10(int xla) {
  +    jj_la = xla; jj_lastpos = jj_scanpos = token;
  +    boolean retval = !jj_3_10();
  +    jj_save(9, xla);
  +    return retval;
     }
   
  -  final private boolean jj_3R_57() {
  +  final private boolean jj_2_11(int xla) {
  +    jj_la = xla; jj_lastpos = jj_scanpos = token;
  +    boolean retval = !jj_3_11();
  +    jj_save(10, xla);
  +    return retval;
  +  }
  +
  +  final private boolean jj_2_12(int xla) {
  +    jj_la = xla; jj_lastpos = jj_scanpos = token;
  +    boolean retval = !jj_3_12();
  +    jj_save(11, xla);
  +    return retval;
  +  }
  +
  +  final private boolean jj_3R_59() {
       if (jj_scan_token(FALSE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_31() {
  +  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_56() {
  +  final private boolean jj_3R_58() {
       if (jj_scan_token(TRUE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       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_3_4() {
  +  final private boolean jj_3_7() {
       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_5()) {
  +    if (jj_3_8()) {
       jj_scanpos = xsp;
  -    if (jj_3R_26()) return true;
  +    if (jj_3R_30()) 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_59()) jj_scanpos = xsp;
  -    else 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;
  +  final private boolean jj_3R_42() {
  +    if (jj_3R_54()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_88()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_50() {
  -    if (jj_scan_token(LCURLY)) return true;
  +  final private boolean jj_3_5() {
  +    if (jj_scan_token(DOT)) 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;
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3_6()) {
  +    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;
       return false;
     }
   
  -  final private boolean jj_3R_35() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_50()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +  final private boolean jj_3R_39() {
  +    if (jj_scan_token(LCURLY)) return true;
  +    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_51()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3_4()) { jj_scanpos = xsp; break; }
  +      if (jj_3_7()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
  +    if (jj_scan_token(RCURLY)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_9() {
  +  final private boolean jj_3_12() {
       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_31()) jj_scanpos = xsp;
  +    if (jj_3R_34()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       xsp = jj_scanpos;
  -    if (jj_3R_32()) {
  +    if (jj_3R_35()) {
       jj_scanpos = xsp;
  -    if (jj_3R_33()) return true;
  +    if (jj_3R_36()) 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_34()) jj_scanpos = xsp;
  +    if (jj_3R_37()) 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_3_3() {
  -    if (jj_scan_token(LBRACKET)) return true;
  +  final private boolean jj_3R_24() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_38() {
  +    if (jj_scan_token(IDENTIFIER)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_22()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    xsp = jj_scanpos;
  -    if (jj_3R_23()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_24()) 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_25()) 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_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;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3_5()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
       return false;
     }
   
  -  final private boolean jj_3R_48() {
  +  final private boolean jj_3R_52() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_47() {
  +  final private boolean jj_3R_51() {
       if (jj_scan_token(LPAREN)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_58()) return true;
  +    if (jj_3R_60()) 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_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;
  +  final private boolean jj_3R_19() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_38()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_39()) 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_72() {
  +  final private boolean jj_3R_32() {
       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_56()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
   
  -  final private boolean jj_3R_67() {
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_50() {
  +    if (jj_3R_59()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_44() {
  -    if (jj_3R_55()) return true;
  +  final private boolean jj_3R_41() {
  +    if (jj_scan_token(IDENTIFIER)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_66() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3R_49() {
  +    if (jj_3R_58()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_43() {
  -    if (jj_3R_54()) return true;
  +  final private boolean jj_3R_48() {
  +    if (jj_3R_57()) 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_47() {
  +    if (jj_3R_56()) 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;
  +  final private boolean jj_3R_46() {
  +    if (jj_3R_19()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_42() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3R_45() {
  +    if (jj_3R_40()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_64() {
  -    if (jj_3R_56()) return true;
  +  final private boolean jj_3_4() {
  +    if (jj_scan_token(LBRACKET)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_41() {
  -    if (jj_3R_36()) return true;
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_24()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    xsp = jj_scanpos;
  +    if (jj_3R_25()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_26()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_53() {
  -    if (jj_scan_token(STRING_LITERAL)) return true;
  +    } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    xsp = jj_scanpos;
  +    if (jj_3R_27()) 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_63() {
  +  final private boolean jj_3R_44() {
       if (jj_3R_55()) 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;
  +  final private boolean jj_3R_29() {
  +    if (jj_3R_41()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_40() {
  -    if (jj_3R_53()) return true;
  +    if (jj_scan_token(LPAREN)) 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;
  +    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(REFMOD2_RPAREN)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_61() {
  -    if (jj_3R_53()) return true;
  +  final private boolean jj_3R_43() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_28() {
  +  final private boolean jj_3R_31() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_39()) jj_scanpos = xsp;
  +    if (jj_3R_43()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       xsp = jj_scanpos;
  -    if (jj_3R_40()) {
  +    if (jj_3R_44()) {
       jj_scanpos = xsp;
  -    if (jj_3R_41()) {
  +    if (jj_3R_45()) {
       jj_scanpos = xsp;
  -    if (jj_3R_42()) {
  +    if (jj_3R_46()) {
       jj_scanpos = xsp;
  -    if (jj_3R_43()) {
  +    if (jj_3R_47()) {
       jj_scanpos = xsp;
  -    if (jj_3R_44()) {
  +    if (jj_3R_48()) {
       jj_scanpos = xsp;
  -    if (jj_3R_45()) {
  +    if (jj_3R_49()) {
       jj_scanpos = xsp;
  -    if (jj_3R_46()) {
  +    if (jj_3R_50()) {
       jj_scanpos = xsp;
  -    if (jj_3R_47()) return true;
  +    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;
       } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2560,312 +2568,337 @@
       } 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_48()) jj_scanpos = xsp;
  +    if (jj_3R_52()) jj_scanpos = xsp;
       else 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_73() {
  +    if (jj_scan_token(WHITESPACE)) 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;
  +  final private boolean jj_3R_68() {
  +    if (jj_3R_40()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_105() {
  +  final private boolean jj_3R_106() {
       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_3R_33()) 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;
  +  final private boolean jj_3R_67() {
  +    if (jj_3R_19()) 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;
  +  final private boolean jj_3R_105() {
  +    if (jj_scan_token(DIVIDE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_52()) return true;
  +    if (jj_3R_33()) 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;
  -    if (jj_3R_30()) return true;
  +  final private boolean jj_3R_83() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_60() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_66() {
  +    if (jj_3R_59()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_30() {
  +  final private boolean jj_3R_33() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3_8()) {
  +    if (jj_3_11()) {
       jj_scanpos = xsp;
  -    if (jj_3R_49()) return true;
  +    if (jj_3R_53()) 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_8() {
  +  final private boolean jj_3_11() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_29()) jj_scanpos = xsp;
  +    if (jj_3R_32()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_scan_token(LOGICAL_NOT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_30()) return true;
  +    if (jj_3R_33()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_49() {
  -    if (jj_3R_28()) return true;
  +  final private boolean jj_3R_53() {
  +    if (jj_3R_31()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_103() {
  +  final private boolean jj_3R_104() {
       if (jj_scan_token(MULTIPLY)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_30()) return true;
  +    if (jj_3R_33()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_100() {
  +  final private boolean jj_3R_101() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_103()) {
  -    jj_scanpos = xsp;
       if (jj_3R_104()) {
       jj_scanpos = xsp;
  -    if (jj_3R_105()) return true;
  +    if (jj_3R_105()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_106()) 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_52() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_60()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    xsp = jj_scanpos;
  -    if (jj_3R_61()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_62()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_63()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_64()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_65()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_66()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_67()) return true;
  +  final private boolean jj_3R_65() {
  +    if (jj_3R_58()) 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;
  -    xsp = jj_scanpos;
  -    if (jj_3R_82()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_68() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_55() {
  +    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_94() {
  -    if (jj_3R_30()) return true;
  +  final private boolean jj_3R_64() {
  +    if (jj_3R_57()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    Token xsp;
  -    while (true) {
  -      xsp = jj_scanpos;
  -      if (jj_3R_100()) { jj_scanpos = xsp; break; }
  -      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    }
       return false;
     }
   
  -  final private boolean jj_3R_75() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +  final private boolean jj_3R_63() {
  +    if (jj_3R_56()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_73() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3R_62() {
  +    if (jj_3R_55()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_102() {
  -    if (jj_scan_token(MINUS)) return true;
  +  final private boolean jj_3R_40() {
  +    if (jj_scan_token(NUMBER_LITERAL)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_75() {
  +    if (jj_3R_40()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_69() {
  -    if (jj_3R_35()) return true;
  +  final private boolean jj_3R_80() {
  +    if (jj_scan_token(COMMA)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_54()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
     final private boolean jj_3R_71() {
  -    if (jj_scan_token(WHITESPACE)) return true;
  +    if (jj_3R_40()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_76() {
  -    if (jj_3R_52()) return true;
  +  final private boolean jj_3R_95() {
  +    if (jj_3R_33()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_79()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_101()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_101() {
  -    if (jj_scan_token(PLUS)) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_95() {
  -    Token xsp;
  -    xsp = jj_scanpos;
  -    if (jj_3R_101()) {
  -    jj_scanpos = xsp;
  -    if (jj_3R_102()) return true;
  +  final private boolean jj_3R_61() {
  +    if (jj_scan_token(WHITESPACE)) 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_54() {
  -    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_68()) jj_scanpos = xsp;
  +    if (jj_3R_61()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       xsp = jj_scanpos;
  -    if (jj_3R_69()) {
  +    if (jj_3R_62()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_63()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_64()) {
       jj_scanpos = xsp;
  -    if (jj_3R_70()) return true;
  +    if (jj_3R_65()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_66()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_67()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_68()) 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;
       xsp = jj_scanpos;
  -    if (jj_3R_71()) jj_scanpos = xsp;
  +    if (jj_3R_83()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(DOUBLEDOT)) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_103() {
  +    if (jj_scan_token(MINUS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    xsp = jj_scanpos;
  -    if (jj_3R_72()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_95()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_102() {
  +    if (jj_scan_token(PLUS)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_95()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_96() {
  +    Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_73()) {
  +    if (jj_3R_102()) {
       jj_scanpos = xsp;
  -    if (jj_3R_74()) return true;
  +    if (jj_3R_103()) 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_75()) jj_scanpos = xsp;
  -    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_scan_token(RBRACKET)) return true;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_69() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_90() {
  -    if (jj_3R_94()) return true;
  +  final private boolean jj_3R_91() {
  +    if (jj_3R_95()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_95()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_96()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_99() {
  +  final private boolean jj_3R_100() {
       if (jj_scan_token(LOGICAL_GE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_90()) return true;
  +    if (jj_3R_91()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_98() {
  +  final private boolean jj_3R_76() {
  +    if (jj_scan_token(WHITESPACE)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_99() {
       if (jj_scan_token(LOGICAL_LE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_90()) return true;
  +    if (jj_3R_91()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_97() {
  +  final private boolean jj_3R_74() {
  +    if (jj_3R_19()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_98() {
       if (jj_scan_token(LOGICAL_GT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_90()) return true;
  +    if (jj_3R_91()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_96() {
  +  final private boolean jj_3R_70() {
  +    if (jj_3R_19()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  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_77() {
  +    if (jj_3R_54()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    Token xsp;
  +    while (true) {
  +      xsp = jj_scanpos;
  +      if (jj_3R_80()) { jj_scanpos = xsp; break; }
  +      if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    }
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_97() {
       if (jj_scan_token(LOGICAL_LT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_90()) return true;
  +    if (jj_3R_91()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_91() {
  +  final private boolean jj_3R_92() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_96()) {
  -    jj_scanpos = xsp;
       if (jj_3R_97()) {
       jj_scanpos = xsp;
       if (jj_3R_98()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_99()) {
       jj_scanpos = xsp;
  -    if (jj_3R_99()) return true;
  +    if (jj_3R_100()) 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;
  @@ -2873,11 +2906,34 @@
       return false;
     }
   
  -  final private boolean jj_3R_55() {
  +  final private boolean jj_3R_56() {
       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_69()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    xsp = jj_scanpos;
  +    if (jj_3R_70()) {
  +    jj_scanpos = xsp;
  +    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;
  +    xsp = jj_scanpos;
  +    if (jj_3R_72()) 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;
  +    xsp = jj_scanpos;
  +    if (jj_3R_73()) jj_scanpos = xsp;
  +    else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    xsp = jj_scanpos;
  +    if (jj_3R_74()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_75()) 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_76()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_scan_token(RBRACKET)) return true;
  @@ -2885,63 +2941,69 @@
       return false;
     }
   
  -  final private boolean jj_3R_88() {
  -    if (jj_3R_90()) return true;
  +  final private boolean jj_3R_89() {
  +    if (jj_3R_91()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_91()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_92()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_93() {
  +  final private boolean jj_3R_94() {
       if (jj_scan_token(LOGICAL_NOT_EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_88()) return true;
  +    if (jj_3R_89()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_92() {
  +  final private boolean jj_3R_93() {
       if (jj_scan_token(LOGICAL_EQUALS)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_88()) return true;
  +    if (jj_3R_89()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_89() {
  +  final private boolean jj_3R_90() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_92()) {
  +    if (jj_3R_93()) {
       jj_scanpos = xsp;
  -    if (jj_3R_93()) return true;
  +    if (jj_3R_94()) 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_57() {
  +    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_77()) 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_86() {
  -    if (jj_3R_88()) return true;
  +    if (jj_3R_89()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_89()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_90()) { jj_scanpos = xsp; break; }
         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;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
     final private boolean jj_3R_87() {
       if (jj_scan_token(LOGICAL_AND)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  @@ -2950,7 +3012,7 @@
       return false;
     }
   
  -  final private boolean jj_3R_83() {
  +  final private boolean jj_3R_84() {
       if (jj_3R_86()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
  @@ -2962,40 +3024,52 @@
       return false;
     }
   
  -  final private boolean jj_3R_84() {
  +  final private boolean jj_3R_85() {
       if (jj_scan_token(LOGICAL_OR)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_83()) return true;
  +    if (jj_3R_84()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_7() {
  -    if (jj_3R_28()) return true;
  +  final private boolean jj_3_2() {
  +    if (jj_scan_token(DOUBLE_ESCAPE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3_10() {
  +    if (jj_3R_31()) 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;
       return false;
     }
   
  -  final private boolean jj_3R_81() {
  -    if (jj_3R_83()) return true;
  +  final private boolean jj_3R_82() {
  +    if (jj_3R_84()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_84()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_85()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_80() {
  -    if (jj_3R_28()) return true;
  +  final private boolean jj_3R_81() {
  +    if (jj_3R_31()) 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_58()) return true;
  +    if (jj_3R_60()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_79() {
  +    if (jj_3R_82()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -3006,132 +3080,138 @@
       return false;
     }
   
  -  final private boolean jj_3R_58() {
  +  final private boolean jj_3R_60() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_77()) {
  +    if (jj_3R_78()) {
       jj_scanpos = xsp;
  -    if (jj_3R_78()) 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_77() {
  -    if (jj_3R_80()) return true;
  +  final private boolean jj_3R_23() {
  +    if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_21() {
  +  final private boolean jj_3_9() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_20() {
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3_1() {
  +    if (jj_3R_19()) 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;
  +  final private boolean jj_3R_22() {
  +    if (jj_3R_40()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_34() {
  +  final private boolean jj_3R_37() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_59() {
  -    if (jj_scan_token(RCURLY)) return true;
  +  final private boolean jj_3R_21() {
  +    if (jj_3R_19()) 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_27() {
  +    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_scan_token(WHITESPACE)) 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_37()) return true;
  +  final private boolean jj_3R_28() {
  +    if (jj_3R_41()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_18() {
  +  final private boolean jj_3R_36() {
  +    if (jj_3R_40()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_20() {
       if (jj_scan_token(WHITESPACE)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_33() {
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_35() {
  +    if (jj_3R_19()) 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;
  +  final private boolean jj_3R_26() {
  +    if (jj_3R_40()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_2() {
  +  final private boolean jj_3_8() {
  +    if (jj_3R_29()) 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;
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_18()) jj_scanpos = xsp;
  +    if (jj_3R_20()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       xsp = jj_scanpos;
  -    if (jj_3R_19()) {
  +    if (jj_3R_21()) {
       jj_scanpos = xsp;
  -    if (jj_3R_20()) return true;
  +    if (jj_3R_22()) 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_21()) 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(DOUBLEDOT)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_85() {
  +  final private boolean jj_3R_88() {
       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_32() {
  -    if (jj_3R_35()) return true;
  +    if (jj_3R_54()) 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_6() {
  +    if (jj_3R_29()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_5() {
  -    if (jj_3R_27()) return true;
  +  final private boolean jj_3R_25() {
  +    if (jj_3R_19()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -3145,9 +3225,9 @@
     private boolean jj_semLA;
     private int jj_gen;
     final private int[] jj_la1 = new int[53];
  -  final private int[] jj_la1_0 = {0x13f0360,0x13f0360,0x380000,0x1000000,0x6800002,0x800000,0x7800002,0x13f0360,0x8,0x7800002,0x800000,0x0,0x800000,0x800000,0x0,0x800000,0x800000,0x1000000,0x6000002,0x800000,0x8,0x7800002,0x0,0x0,0x0,0x0,0x1060060,0x800000,0x13f0360,0x0,0x0,0x0,0x13f0360,0x800000,0x13f0360,0x8000000,0x7800022,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x30000000,0xc0000000,0xc0000000,0x800000,0x7800022,0x800000,0x1000000,0x6000022,0x800000,};
  -  final private int[] jj_la1_1 = {0x7129000,0x7129000,0x0,0x5120000,0x0,0x0,0x5120000,0x7129000,0x0,0x5020000,0x0,0x5020000,0x0,0x0,0x5020000,0x0,0x0,0x0,0x5020000,0x0,0x0,0x5020000,0x4000000,0x8000000,0x1000000,0x8000000,0x2020000,0x0,0x7129000,0x2000,0x2000,0x4000,0x7129000,0x0,0x7129000,0x0,0x5020200,0x4,0x2,0x180,0x180,0x78,0x78,0x0,0x0,0x1,0x1,0x0,0x5020000,0x0,0x5020000,0x0,0x0,};
  -  final private JJCalls[] jj_2_rtns = new JJCalls[9];
  +  final private int[] jj_la1_0 = {0x13f0360,0x0,0x13f0360,0x380000,0x1000000,0x6800002,0x800000,0x7800002,0x13f0360,0x8,0x7800002,0x800000,0x0,0x800000,0x800000,0x0,0x800000,0x800000,0x1000000,0x6000002,0x800000,0x8,0x7800002,0x0,0x0,0x0,0x1060060,0x800000,0x13f0360,0x0,0x0,0x0,0x13f0360,0x800000,0x13f0360,0x8000000,0x7800022,0x0,0x0,0x0,0x0,0x0,0x0,0x30000000,0x30000000,0xc0000000,0xc0000000,0x800000,0x7800022,0x800000,0x1000000,0x6000022,0x800000,};
  +  final private int[] jj_la1_1 = {0xf129000,0x9000,0xe120000,0x0,0x5120000,0x0,0x0,0x5120000,0xf129000,0x0,0x5020000,0x0,0x5020000,0x0,0x0,0x5020000,0x0,0x0,0x0,0x5020000,0x0,0x0,0x5020000,0x1000000,0x1000000,0x5000000,0xe020000,0x0,0xf129000,0x2000,0x2000,0x4000,0xf129000,0x0,0xf129000,0x0,0x5020200,0x4,0x2,0x180,0x180,0x78,0x78,0x0,0x0,0x1,0x1,0x0,0x5020000,0x0,0x5020000,0x0,0x0,};
  +  final private JJCalls[] jj_2_rtns = new JJCalls[12];
     private boolean jj_rescan = false;
     private int jj_gc = 0;
   
  @@ -3337,7 +3417,7 @@
   
     final private void jj_rescan_token() {
       jj_rescan = true;
  -    for (int i = 0; i < 9; i++) {
  +    for (int i = 0; i < 12; i++) {
         JJCalls p = jj_2_rtns[i];
         do {
           if (p.gen > jj_gen) {
  @@ -3352,6 +3432,9 @@
               case 6: jj_3_7(); break;
               case 7: jj_3_8(); break;
               case 8: jj_3_9(); break;
  +            case 9: jj_3_10(); break;
  +            case 10: jj_3_11(); break;
  +            case 11: jj_3_12(); break;
             }
           }
           p = p.next;
  
  
  
  1.64.2.1  +41 -32    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.64
  retrieving revision 1.64.2.1
  diff -u -r1.64 -r1.64.2.1
  --- Parser.jj	2001/08/13 13:58:03	1.64
  +++ Parser.jj	2001/11/08 02:41:56	1.64.2.1
  @@ -84,8 +84,6 @@
        */
       DEBUG_PARSER=false;
       DEBUG_TOKEN_MANAGER=false;
  -
  -
   }    
   
   PARSER_BEGIN(Parser)
  @@ -110,9 +108,9 @@
    * Please look at the Parser.jjt file which is
    * what controls the generation of this class.
    *
  - * @author <a href="mailto:jvanzyl@periapt.com">Jason van Zyl</a>
  + * @author <a href="mailto:jvanzyl@apache.org">Jason van Zyl</a>
    * @author <a href="mailto:geirm@optonline.net">Geir Magnusson Jr.</a>
  - * @version $Id: Parser.jj,v 1.64 2001/08/13 13:58:03 geirm Exp $ 
  + * @version $Id: Parser.jj,v 1.64.2.1 2001/11/08 02:41:56 geirm Exp $ 
   */
   public class Parser/*@bgen(jjtree)*/implements ParserTreeConstants/*@egen*/
   {/*@bgen(jjtree)*/
  @@ -671,7 +669,7 @@
                * you are going into DIRECTIVE while in REFERENCE.  -gmj
                */
   
  -            if (curLexState == REFERENCE)
  +            if (curLexState == REFERENCE || curLexState == REFMODIFIER )
               {
                   inReference = false;
                   stateStackPop();
  @@ -1038,7 +1036,7 @@
   {
       IfStatement()
   |   StopStatement()
  -|   Reference()
  +|   LOOKAHEAD(2) Reference()
   |   Comment()
   |   SetDirective()
   |   EscapedDirective()
  @@ -1574,33 +1572,42 @@
     jjtree.openNodeScope(jjtn000);
   /*@egen*/}
   {/*@bgen(jjtree) Reference */
  -    try {
  +      try {
   /*@egen*/ 
  -    // This should be changed to Indentifier() now. Make
  -    // it easier to walk the AST.
  -    [<LCURLY>]
  -    <IDENTIFIER>
  -    [<RCURLY>]
  -    (LOOKAHEAD(2) <DOT> (LOOKAHEAD(3) Method() | Identifier() ) [<RCURLY>] )*/*@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);
  +    /*
  +     *  A reference is either ${<FOO>} or  $<FOO>
  +     */
  +     
  +      ( 
  +         <IDENTIFIER> 
  +         (LOOKAHEAD(2) <DOT> (LOOKAHEAD(3) Method() | Identifier() ))* 
  +      )
  +      |      
  +      ( 
  +         <LCURLY> 
  +         <IDENTIFIER>  
  +         (LOOKAHEAD(2) <DOT> (LOOKAHEAD(3) Method() | Identifier() ))* 
  +         <RCURLY>
  +      )/*@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*/
   }
   
  @@ -1657,7 +1664,9 @@
   |   <LPAREN>
   |   <NUMBER_LITERAL>
   |   <STRING_LITERAL>
  -|   <ESCAPE>/*@bgen(jjtree)*/
  +|   <ESCAPE>
  +|   <LCURLY>
  +|   <RCURLY>/*@bgen(jjtree)*/
       } finally {
         if (jjtc000) {
           jjtree.closeNodeScope(jjtn000, true);
  
  
  
  1.46.2.1  +3 -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.46
  retrieving revision 1.46.2.1
  diff -u -r1.46 -r1.46.2.1
  --- ParserTokenManager.java	2001/08/07 21:57:28	1.46
  +++ ParserTokenManager.java	2001/11/08 02:41:56	1.46.2.1
  @@ -158,6 +158,8 @@
               }
           }
       }
  +  public  java.io.PrintStream debugStream = System.out;
  +  public  void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
   private final int jjStopStringLiteralDfa_0(int pos, long active0)
   {
      switch (pos)
  @@ -3694,7 +3696,7 @@
                * you are going into DIRECTIVE while in REFERENCE.  -gmj
                */
   
  -            if (curLexState == REFERENCE)
  +            if (curLexState == REFERENCE || curLexState == REFMODIFIER )
               {
                   inReference = false;
                   stateStackPop();
  
  
  
  1.3.2.1   +1 -1      jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Token.java
  
  Index: Token.java
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/Token.java,v
  retrieving revision 1.3
  retrieving revision 1.3.2.1
  diff -u -r1.3 -r1.3.2.1
  --- Token.java	2001/05/30 05:55:23	1.3
  +++ Token.java	2001/11/08 02:41:56	1.3.2.1
  @@ -1,4 +1,4 @@
  -/* Generated By:JavaCC: Do not edit this line. Token.java Version 0.7pre3 */
  +/* Generated By:JavaCC: Do not edit this line. Token.java Version 2.1 */
   package org.apache.velocity.runtime.parser;
   
   /**
  
  
  
  1.2.2.1   +1 -1      jakarta-velocity/src/java/org/apache/velocity/runtime/parser/TokenMgrError.java
  
  Index: TokenMgrError.java
  ===================================================================
  RCS file: /home/cvs/jakarta-velocity/src/java/org/apache/velocity/runtime/parser/TokenMgrError.java,v
  retrieving revision 1.2
  retrieving revision 1.2.2.1
  diff -u -r1.2 -r1.2.2.1
  --- TokenMgrError.java	2001/05/30 05:55:23	1.2
  +++ TokenMgrError.java	2001/11/08 02:41:56	1.2.2.1
  @@ -1,4 +1,4 @@
  -/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 0.7pre2 */
  +/* Generated By:JavaCC: Do not edit this line. TokenMgrError.java Version 2.1 */
   package org.apache.velocity.runtime.parser;
   
   public class TokenMgrError extends Error
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>