You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by ge...@apache.org on 2002/06/07 05:35:30 UTC

cvs commit: jakarta-commons-sandbox/jexl/src/java/org/apache/commons/jexl/parser ASTArrayAccess.java Parser.java Parser.jj

geirm       2002/06/06 20:35:30

  Modified:    jexl/src/java/org/apache/commons/jexl/parser
                        ASTArrayAccess.java Parser.java Parser.jj
  Log:
  update : support for [][]
  
  Revision  Changes    Path
  1.3       +31 -1     jakarta-commons-sandbox/jexl/src/java/org/apache/commons/jexl/parser/ASTArrayAccess.java
  
  Index: ASTArrayAccess.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jexl/src/java/org/apache/commons/jexl/parser/ASTArrayAccess.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ASTArrayAccess.java	25 May 2002 18:39:02 -0000	1.2
  +++ ASTArrayAccess.java	7 Jun 2002 03:35:30 -0000	1.3
  @@ -71,7 +71,7 @@
    *    $foo[2]
    *
    *  @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
  - *  @version $Id: ASTArrayAccess.java,v 1.2 2002/05/25 18:39:02 geirm Exp $
  + *  @version $Id: ASTArrayAccess.java,v 1.3 2002/06/07 03:35:30 geirm Exp $
    */
   public class ASTArrayAccess extends SimpleNode
   {
  @@ -91,6 +91,36 @@
       {
           return visitor.visit(this, data);
       }
  +
  +    /*
  +     * evaluate array access upon a base object
  +     *
  +     *   foo.bar[2]
  +     *
  +     *  makes me rethink the array operator :)
  +     */
  +    public Object execute(Object obj, JexlContext jc)
  +             throws Exception
  +     {
  +         ASTIdentifier base = (ASTIdentifier) jjtGetChild(0);
  +
  +         obj = base.execute(obj,jc);
  +
  +         /*
  +          * ignore the first child - it's our identifier
  +          */
  +         for(int i=1; i<jjtGetNumChildren(); i++)
  +         {
  +             Object loc = ((SimpleNode) jjtGetChild(i)).value(jc);
  +
  +             if(loc==null)
  +                 return null;
  +
  +             obj = evaluateExpr(obj, loc);
  +         }
  +
  +         return obj;
  +     }
   
       /**
        *  return the value of this node
  
  
  
  1.3       +315 -239  jakarta-commons-sandbox/jexl/src/java/org/apache/commons/jexl/parser/Parser.java
  
  Index: Parser.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jexl/src/java/org/apache/commons/jexl/parser/Parser.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Parser.java	25 May 2002 18:40:11 -0000	1.2
  +++ Parser.java	7 Jun 2002 03:35:30 -0000	1.3
  @@ -1850,18 +1850,31 @@
             break label_14;
           }
           jj_consume_token(57);
  -        if (jj_2_7(3)) {
  -          Method();
  +        if (jj_2_8(2147483647)) {
  +          ArrayAccess();
           } else {
             switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  -          case IDENTIFIER:
  -            Identifier();
  -            break;
             case INTEGER_LITERAL:
  -            IntegerLiteral();
  +          case IDENTIFIER:
  +            if (jj_2_7(3)) {
  +              Method();
  +            } else {
  +              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  +              case IDENTIFIER:
  +                Identifier();
  +                break;
  +              case INTEGER_LITERAL:
  +                IntegerLiteral();
  +                break;
  +              default:
  +                jj_la1[31] = jj_gen;
  +                jj_consume_token(-1);
  +                throw new ParseException();
  +              }
  +            }
               break;
             default:
  -            jj_la1[31] = jj_gen;
  +            jj_la1[32] = jj_gen;
               jj_consume_token(-1);
               throw new ParseException();
             }
  @@ -1889,7 +1902,7 @@
     }
   
     final public void Parameter() throws ParseException {
  -    if (jj_2_8(3)) {
  +    if (jj_2_9(3)) {
         Expression();
       } else {
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
  @@ -1905,7 +1918,7 @@
           Reference();
           break;
         default:
  -        jj_la1[32] = jj_gen;
  +        jj_la1[33] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  @@ -1968,46 +1981,53 @@
       return retval;
     }
   
  -  final private boolean jj_3R_64() {
  +  final private boolean jj_2_9(int xla) {
  +    jj_la = xla; jj_lastpos = jj_scanpos = token;
  +    boolean retval = !jj_3_9();
  +    jj_save(8, xla);
  +    return retval;
  +  }
  +
  +  final private boolean jj_3R_69() {
       if (jj_scan_token(17)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_51()) return true;
  +    if (jj_3R_56()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_52() {
  +  final private boolean jj_3R_57() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_63()) {
  +    if (jj_3R_68()) {
       jj_scanpos = xsp;
  -    if (jj_3R_64()) 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;
       return false;
     }
   
  -  final private boolean jj_3R_63() {
  +  final private boolean jj_3R_68() {
       if (jj_scan_token(16)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_51()) return true;
  +    if (jj_3R_56()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_57() {
  +  final private boolean jj_3R_62() {
       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_41() {
  -    if (jj_3R_51()) return true;
  +  final private boolean jj_3R_46() {
  +    if (jj_3R_56()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_52()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_57()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
  @@ -2021,7 +2041,7 @@
       return false;
     }
   
  -  final private boolean jj_3R_40() {
  +  final private boolean jj_3R_45() {
       if (jj_3R_15()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_scan_token(15)) return true;
  @@ -2031,26 +2051,26 @@
       return false;
     }
   
  -  final private boolean jj_3R_33() {
  -    if (jj_3R_41()) return true;
  +  final private boolean jj_3R_36() {
  +    if (jj_3R_46()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_55() {
  +  final private boolean jj_3R_60() {
       if (jj_scan_token(FLOAT_LITERAL)) 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_3R_18()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_32() {
  -    if (jj_3R_40()) return true;
  +  final private boolean jj_3R_35() {
  +    if (jj_3R_45()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2058,15 +2078,15 @@
     final private boolean jj_3R_17() {
       Token xsp;
       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;
       return false;
     }
   
  -  final private boolean jj_3R_49() {
  +  final private boolean jj_3R_54() {
       if (jj_scan_token(12)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_3R_16()) return true;
  @@ -2076,7 +2096,7 @@
       return false;
     }
   
  -  final private boolean jj_3R_34() {
  +  final private boolean jj_3R_37() {
       if (jj_scan_token(INTEGER_LITERAL)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
  @@ -2088,13 +2108,13 @@
       return false;
     }
   
  -  final private boolean jj_3R_66() {
  +  final private boolean jj_3R_71() {
       if (jj_scan_token(47)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_38() {
  +  final private boolean jj_3R_44() {
       if (jj_scan_token(14)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_scan_token(12)) return true;
  @@ -2106,102 +2126,102 @@
       return false;
     }
   
  -  final private boolean jj_3R_56() {
  +  final private boolean jj_3R_61() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_65()) {
  +    if (jj_3R_70()) {
       jj_scanpos = xsp;
  -    if (jj_3R_66()) 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_65() {
  +  final private boolean jj_3R_70() {
       if (jj_scan_token(46)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_48() {
  +  final private boolean jj_3R_53() {
       if (jj_3R_16()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_58() {
  +  final private boolean jj_3R_63() {
       if (jj_scan_token(45)) 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_43() {
       if (jj_scan_token(11)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_48()) {
  +    if (jj_3R_53()) {
       jj_scanpos = xsp;
  -    if (jj_3R_49()) return true;
  +    if (jj_3R_54()) 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_47() {
  -    if (jj_3R_58()) return true;
  +  final private boolean jj_3R_27() {
  +    if (jj_3R_16()) 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_52() {
  +    if (jj_3R_63()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_21() {
  -    if (jj_3R_16()) return true;
  +  final private boolean jj_3R_51() {
  +    if (jj_3R_62()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_60() {
  +  final private boolean jj_3R_21() {
       if (jj_3R_16()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_45() {
  -    if (jj_3R_56()) return true;
  +  final private boolean jj_3R_65() {
  +    if (jj_3R_16()) 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_50() {
  +    if (jj_3R_61()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_23() {
  -    if (jj_3R_34()) return true;
  +  final private boolean jj_3R_49() {
  +    if (jj_3R_60()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_36() {
  +  final private boolean jj_3R_42() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_43()) {
  +    if (jj_3R_48()) {
       jj_scanpos = xsp;
  -    if (jj_3R_44()) {
  +    if (jj_3R_49()) {
       jj_scanpos = xsp;
  -    if (jj_3R_45()) {
  +    if (jj_3R_50()) {
       jj_scanpos = xsp;
  -    if (jj_3R_46()) {
  +    if (jj_3R_51()) {
       jj_scanpos = xsp;
  -    if (jj_3R_47()) return true;
  +    if (jj_3R_52()) 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;
  @@ -2210,31 +2230,43 @@
       return false;
     }
   
  -  final private boolean jj_3R_43() {
  -    if (jj_3R_34()) return true;
  +  final private boolean jj_3R_48() {
  +    if (jj_3R_37()) 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_59() {
  +    if (jj_3R_16()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_54() {
  -    if (jj_3R_16()) return true;
  +  final private boolean jj_3R_26() {
  +    if (jj_3R_37()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_28() {
  +  final private boolean jj_3R_32() {
  +    if (jj_3R_44()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_40() {
       if (jj_3R_37()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_27() {
  +  final private boolean jj_3R_31() {
  +    if (jj_3R_43()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_30() {
       if (jj_scan_token(12)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_3R_17()) return true;
  @@ -2245,31 +2277,31 @@
     }
   
     final private boolean jj_3R_20() {
  -    if (jj_3R_34()) return true;
  +    if (jj_3R_37()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_59() {
  -    if (jj_3R_34()) return true;
  +  final private boolean jj_3R_64() {
  +    if (jj_3R_37()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_22() {
  -    if (jj_3R_18()) return true;
  +  final private boolean jj_3R_29() {
  +    if (jj_3R_16()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_26() {
  -    if (jj_3R_16()) return true;
  +  final private boolean jj_3R_58() {
  +    if (jj_3R_42()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_25() {
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_28() {
  +    if (jj_3R_42()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2277,15 +2309,15 @@
     final private boolean jj_3R_15() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_25()) {
  +    if (jj_3R_28()) {
       jj_scanpos = xsp;
  -    if (jj_3R_26()) {
  +    if (jj_3R_29()) {
       jj_scanpos = xsp;
  -    if (jj_3R_27()) {
  +    if (jj_3R_30()) {
       jj_scanpos = xsp;
  -    if (jj_3R_28()) {
  +    if (jj_3R_31()) {
       jj_scanpos = xsp;
  -    if (jj_3R_29()) return true;
  +    if (jj_3R_32()) 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;
  @@ -2294,30 +2326,36 @@
       return false;
     }
   
  -  final private boolean jj_3R_53() {
  -    if (jj_3R_36()) return true;
  +  final private boolean jj_3R_25() {
  +    if (jj_3R_17()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_101() {
  +  final private boolean jj_3R_106() {
       if (jj_3R_15()) 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_105() {
       if (jj_scan_token(44)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    if (jj_3R_99()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_99() {
  +  final private boolean jj_3R_39() {
  +    if (jj_3R_18()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_104() {
       if (jj_scan_token(43)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    if (jj_3R_99()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2328,24 +2366,24 @@
       return false;
     }
   
  -  final private boolean jj_3R_98() {
  +  final private boolean jj_3R_103() {
       if (jj_scan_token(42)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    if (jj_3R_99()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_94() {
  +  final private boolean jj_3R_99() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_98()) {
  +    if (jj_3R_103()) {
       jj_scanpos = xsp;
  -    if (jj_3R_99()) {
  +    if (jj_3R_104()) {
       jj_scanpos = xsp;
  -    if (jj_3R_100()) {
  +    if (jj_3R_105()) {
       jj_scanpos = xsp;
  -    if (jj_3R_101()) return true;
  +    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;
  @@ -2353,48 +2391,62 @@
       return false;
     }
   
  -  final private boolean jj_3R_106() {
  +  final private boolean jj_3R_111() {
       if (jj_scan_token(41)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    if (jj_3R_99()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_67() {
  +  final private boolean jj_3R_76() {
       if (jj_scan_token(54)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_42()) return true;
  +    if (jj_3R_47()) 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_110() {
       if (jj_scan_token(40)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    if (jj_3R_99()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_104() {
  +  final private boolean jj_3R_109() {
       if (jj_scan_token(39)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    if (jj_3R_99()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3_7() {
  -    if (jj_3R_24()) return true;
  +  final private boolean jj_3R_108() {
  +    if (jj_scan_token(38)) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_3R_99()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_103() {
  -    if (jj_scan_token(38)) return true;
  +  final private boolean jj_3_8() {
  +    if (jj_3R_18()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    if (jj_scan_token(55)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3R_25()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_26()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_27()) 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;
  +    if (jj_scan_token(56)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2405,26 +2457,26 @@
       return false;
     }
   
  -  final private boolean jj_3R_102() {
  +  final private boolean jj_3R_107() {
       if (jj_scan_token(37)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_94()) return true;
  +    if (jj_3R_99()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_95() {
  +  final private boolean jj_3R_100() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_102()) {
  +    if (jj_3R_107()) {
       jj_scanpos = xsp;
  -    if (jj_3R_103()) {
  +    if (jj_3R_108()) {
       jj_scanpos = xsp;
  -    if (jj_3R_104()) {
  +    if (jj_3R_109()) {
       jj_scanpos = xsp;
  -    if (jj_3R_105()) {
  +    if (jj_3R_110()) {
       jj_scanpos = xsp;
  -    if (jj_3R_106()) return true;
  +    if (jj_3R_111()) 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;
  @@ -2433,13 +2485,33 @@
       return false;
     }
   
  -  final private boolean jj_3R_84() {
  -    if (jj_3R_94()) return true;
  +  final private boolean jj_3_9() {
  +    if (jj_3R_17()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_47() {
  +    Token xsp;
  +    xsp = jj_scanpos;
  +    if (jj_3_9()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_58()) {
  +    jj_scanpos = xsp;
  +    if (jj_3R_59()) 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_89() {
  +    if (jj_3R_99()) 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_100()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
  @@ -2465,16 +2537,16 @@
       return false;
     }
   
  -  final private boolean jj_3R_50() {
  +  final private boolean jj_3R_55() {
       if (jj_scan_token(55)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       xsp = jj_scanpos;
       if (jj_3_4()) {
       jj_scanpos = xsp;
  -    if (jj_3R_59()) {
  +    if (jj_3R_64()) {
       jj_scanpos = xsp;
  -    if (jj_3R_60()) return true;
  +    if (jj_3R_65()) 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;
  @@ -2483,60 +2555,66 @@
       return false;
     }
   
  -  final private boolean jj_3R_35() {
  -    if (jj_3R_42()) return true;
  +  final private boolean jj_3_7() {
  +    if (jj_3R_24()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_41() {
  +    if (jj_3R_47()) 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_3R_76()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3_8() {
  -    if (jj_3R_17()) return true;
  -    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    return false;
  -  }
  -
  -  final private boolean jj_3R_42() {
  +  final private boolean jj_3R_23() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3_8()) {
  +    if (jj_3_7()) {
       jj_scanpos = xsp;
  -    if (jj_3R_53()) {
  +    if (jj_3R_39()) {
       jj_scanpos = xsp;
  -    if (jj_3R_54()) return true;
  +    if (jj_3R_40()) 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_97() {
  +  final private boolean jj_3R_102() {
       if (jj_scan_token(36)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_84()) 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_96() {
  +  final private boolean jj_3R_22() {
  +    if (jj_3R_38()) return true;
  +    if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  +    return false;
  +  }
  +
  +  final private boolean jj_3R_101() {
       if (jj_scan_token(35)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_84()) 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_85() {
  +  final private boolean jj_3R_90() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_96()) {
  +    if (jj_3R_101()) {
       jj_scanpos = xsp;
  -    if (jj_3R_97()) return true;
  +    if (jj_3R_102()) 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;
  @@ -2547,31 +2625,28 @@
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3_7()) {
  -    jj_scanpos = xsp;
       if (jj_3R_22()) {
       jj_scanpos = xsp;
       if (jj_3R_23()) 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_78() {
  -    if (jj_3R_84()) return true;
  +  final private boolean jj_3R_83() {
  +    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_85()) { 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_3R_30() {
  -    if (jj_3R_39()) return true;
  +  final private boolean jj_3R_33() {
  +    if (jj_3R_38()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2579,9 +2654,9 @@
     final private boolean jj_3R_16() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_30()) {
  +    if (jj_3R_33()) {
       jj_scanpos = xsp;
  -    if (jj_3R_31()) return true;
  +    if (jj_3R_34()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       while (true) {
  @@ -2592,40 +2667,40 @@
       return false;
     }
   
  -  final private boolean jj_3R_39() {
  +  final private boolean jj_3R_38() {
       if (jj_3R_18()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
  -    if (jj_3R_50()) return true;
  +    if (jj_3R_55()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_50()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_55()) { 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_98() {
       if (jj_scan_token(34)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_78()) return true;
  +    if (jj_3R_83()) 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_97() {
       if (jj_scan_token(33)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_78()) return true;
  +    if (jj_3R_83()) 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_96() {
       if (jj_scan_token(32)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_78()) return true;
  +    if (jj_3R_83()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2637,71 +2712,71 @@
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_35()) jj_scanpos = xsp;
  +    if (jj_3R_41()) jj_scanpos = xsp;
       else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       if (jj_scan_token(13)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_90() {
  +  final private boolean jj_3R_95() {
       if (jj_scan_token(31)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_78()) return true;
  +    if (jj_3R_83()) 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_94() {
       if (jj_scan_token(30)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_78()) return true;
  +    if (jj_3R_83()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_88() {
  +  final private boolean jj_3R_93() {
       if (jj_scan_token(29)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_78()) return true;
  +    if (jj_3R_83()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_87() {
  +  final private boolean jj_3R_92() {
       if (jj_scan_token(28)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_78()) return true;
  +    if (jj_3R_83()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_86() {
  +  final private boolean jj_3R_91() {
       if (jj_scan_token(27)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_78()) return true;
  +    if (jj_3R_83()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_79() {
  +  final private boolean jj_3R_84() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_86()) {
  +    if (jj_3R_91()) {
       jj_scanpos = xsp;
  -    if (jj_3R_87()) {
  +    if (jj_3R_92()) {
       jj_scanpos = xsp;
  -    if (jj_3R_88()) {
  +    if (jj_3R_93()) {
       jj_scanpos = xsp;
  -    if (jj_3R_89()) {
  +    if (jj_3R_94()) {
       jj_scanpos = xsp;
  -    if (jj_3R_90()) {
  +    if (jj_3R_95()) {
       jj_scanpos = xsp;
  -    if (jj_3R_91()) {
  +    if (jj_3R_96()) {
       jj_scanpos = xsp;
  -    if (jj_3R_92()) {
  +    if (jj_3R_97()) {
       jj_scanpos = xsp;
  -    if (jj_3R_93()) return true;
  +    if (jj_3R_98()) 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;
  @@ -2713,60 +2788,60 @@
       return false;
     }
   
  -  final private boolean jj_3R_76() {
  -    if (jj_3R_78()) return true;
  +  final private boolean jj_3R_81() {
  +    if (jj_3R_83()) 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_84()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_83() {
  +  final private boolean jj_3R_88() {
       if (jj_scan_token(26)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_76()) return true;
  +    if (jj_3R_81()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_82() {
  +  final private boolean jj_3R_87() {
       if (jj_scan_token(25)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_76()) return true;
  +    if (jj_3R_81()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_81() {
  +  final private boolean jj_3R_86() {
       if (jj_scan_token(24)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_76()) return true;
  +    if (jj_3R_81()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_80() {
  +  final private boolean jj_3R_85() {
       if (jj_scan_token(23)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_76()) return true;
  +    if (jj_3R_81()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_77() {
  +  final private boolean jj_3R_82() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_80()) {
  +    if (jj_3R_85()) {
       jj_scanpos = xsp;
  -    if (jj_3R_81()) {
  +    if (jj_3R_86()) {
       jj_scanpos = xsp;
  -    if (jj_3R_82()) {
  +    if (jj_3R_87()) {
       jj_scanpos = xsp;
  -    if (jj_3R_83()) return true;
  +    if (jj_3R_88()) 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;
  @@ -2774,33 +2849,33 @@
       return false;
     }
   
  -  final private boolean jj_3R_74() {
  -    if (jj_3R_76()) return true;
  +  final private boolean jj_3R_79() {
  +    if (jj_3R_81()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_77()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_82()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_75() {
  +  final private boolean jj_3R_80() {
       if (jj_scan_token(22)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_74()) return true;
  +    if (jj_3R_79()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_72() {
  -    if (jj_3R_74()) return true;
  +  final private boolean jj_3R_77() {
  +    if (jj_3R_79()) 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_80()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
  @@ -2814,10 +2889,10 @@
       return false;
     }
   
  -  final private boolean jj_3R_73() {
  +  final private boolean jj_3R_78() {
       if (jj_scan_token(21)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_72()) return true;
  +    if (jj_3R_77()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
  @@ -2830,72 +2905,72 @@
       return false;
     }
   
  -  final private boolean jj_3R_68() {
  -    if (jj_3R_72()) return true;
  +  final private boolean jj_3R_72() {
  +    if (jj_3R_77()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       Token xsp;
       while (true) {
         xsp = jj_scanpos;
  -      if (jj_3R_73()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_78()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_69() {
  +  final private boolean jj_3R_73() {
       if (jj_scan_token(20)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_68()) return true;
  +    if (jj_3R_72()) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       return false;
     }
   
  -  final private boolean jj_3R_61() {
  -    if (jj_3R_68()) return true;
  +  final private boolean jj_3R_66() {
  +    if (jj_3R_72()) 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_3R_73()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
     }
   
  -  final private boolean jj_3R_71() {
  +  final private boolean jj_3R_75() {
       if (jj_scan_token(19)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_61()) 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_62() {
  +  final private boolean jj_3R_67() {
       Token xsp;
       xsp = jj_scanpos;
  -    if (jj_3R_70()) {
  +    if (jj_3R_74()) {
       jj_scanpos = xsp;
  -    if (jj_3R_71()) return true;
  +    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;
       return false;
     }
   
  -  final private boolean jj_3R_70() {
  +  final private boolean jj_3R_74() {
       if (jj_scan_token(18)) return true;
       if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
  -    if (jj_3R_61()) 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_51() {
  -    if (jj_3R_61()) return true;
  +  final private boolean jj_3R_56() {
  +    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_62()) { jj_scanpos = xsp; break; }
  +      if (jj_3R_67()) { jj_scanpos = xsp; break; }
         if (jj_la == 0 && jj_scanpos == jj_lastpos) return false;
       }
       return false;
  @@ -2910,10 +2985,10 @@
     public boolean lookingAhead = false;
     private boolean jj_semLA;
     private int jj_gen;
  -  final private int[] jj_la1 = new int[33];
  -  final private int[] jj_la1_0 = {0x5b80,0x5b80,0x1000,0x5980,0x30000,0x30000,0xc0000,0xc0000,0x100000,0x200000,0x400000,0x7800000,0x7800000,0xf8000000,0xf8000000,0x0,0x0,0x0,0x0,0x5980,0x5980,0x180,0x0,0x200,0x5980,0x0,0x0,0x5980,0x80,0x0,0x0,0x80,0x180,};
  -  final private int[] jj_la1_1 = {0x241bfc00,0x241bfc00,0x4000000,0x2400fc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x7,0x18,0x18,0x3e0,0x3e0,0x2400fc00,0x2400e000,0x2000e000,0xc000,0x10000,0x241afc00,0x40000,0x400000,0x2400fc00,0x4000000,0x800000,0x4000000,0x4000000,0x2400e000,};
  -  final private JJCalls[] jj_2_rtns = new JJCalls[8];
  +  final private int[] jj_la1 = new int[34];
  +  final private int[] jj_la1_0 = {0x5b80,0x5b80,0x1000,0x5980,0x30000,0x30000,0xc0000,0xc0000,0x100000,0x200000,0x400000,0x7800000,0x7800000,0xf8000000,0xf8000000,0x0,0x0,0x0,0x0,0x5980,0x5980,0x180,0x0,0x200,0x5980,0x0,0x0,0x5980,0x80,0x0,0x0,0x80,0x80,0x180,};
  +  final private int[] jj_la1_1 = {0x241bfc00,0x241bfc00,0x4000000,0x2400fc00,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x7,0x7,0x18,0x18,0x3e0,0x3e0,0x2400fc00,0x2400e000,0x2000e000,0xc000,0x10000,0x241afc00,0x40000,0x400000,0x2400fc00,0x4000000,0x800000,0x4000000,0x4000000,0x4000000,0x2400e000,};
  +  final private JJCalls[] jj_2_rtns = new JJCalls[9];
     private boolean jj_rescan = false;
     private int jj_gc = 0;
   
  @@ -2923,7 +2998,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 33; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2934,7 +3009,7 @@
       jj_ntk = -1;
       jjtree.reset();
       jj_gen = 0;
  -    for (int i = 0; i < 33; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2944,7 +3019,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 33; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2955,7 +3030,7 @@
       jj_ntk = -1;
       jjtree.reset();
       jj_gen = 0;
  -    for (int i = 0; i < 33; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2964,7 +3039,7 @@
       token = new Token();
       jj_ntk = -1;
       jj_gen = 0;
  -    for (int i = 0; i < 33; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -2974,7 +3049,7 @@
       jj_ntk = -1;
       jjtree.reset();
       jj_gen = 0;
  -    for (int i = 0; i < 33; i++) jj_la1[i] = -1;
  +    for (int i = 0; i < 34; i++) jj_la1[i] = -1;
       for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJCalls();
     }
   
  @@ -3089,7 +3164,7 @@
         la1tokens[jj_kind] = true;
         jj_kind = -1;
       }
  -    for (int i = 0; i < 33; i++) {
  +    for (int i = 0; i < 34; i++) {
         if (jj_la1[i] == jj_gen) {
           for (int j = 0; j < 32; j++) {
             if ((jj_la1_0[i] & (1<<j)) != 0) {
  @@ -3126,7 +3201,7 @@
   
     final private void jj_rescan_token() {
       jj_rescan = true;
  -    for (int i = 0; i < 8; i++) {
  +    for (int i = 0; i < 9; i++) {
         JJCalls p = jj_2_rtns[i];
         do {
           if (p.gen > jj_gen) {
  @@ -3140,6 +3215,7 @@
               case 5: jj_3_6(); break;
               case 6: jj_3_7(); break;
               case 7: jj_3_8(); break;
  +            case 8: jj_3_9(); break;
             }
           }
           p = p.next;
  
  
  
  1.5       +8 -2      jakarta-commons-sandbox/jexl/src/java/org/apache/commons/jexl/parser/Parser.jj
  
  Index: Parser.jj
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/jexl/src/java/org/apache/commons/jexl/parser/Parser.jj,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Parser.jj	7 Jun 2002 03:03:51 -0000	1.4
  +++ Parser.jj	7 Jun 2002 03:35:30 -0000	1.5
  @@ -57,7 +57,7 @@
    *  Jexl : Java Expression Language
    *
    *  @author <a href="mailto:geirm@apache.org">Geir Magnusson Jr.</a>
  - *  @version $Id: Parser.jj,v 1.4 2002/06/07 03:03:51 geirm Exp $
  + *  @version $Id: Parser.jj,v 1.5 2002/06/07 03:35:30 geirm Exp $
    */
   
   options
  @@ -1716,7 +1716,13 @@
     try {
   /*@egen*/
     (LOOKAHEAD(Identifier() "[" ( Expression() | IntegerLiteral() | Reference()) "]") ArrayAccess() | Identifier())
  -  (LOOKAHEAD(2) "." (LOOKAHEAD(3) Method() | Identifier() | IntegerLiteral() ))*/*@bgen(jjtree)*/
  +  (LOOKAHEAD(2) "."
  +    (
  +      LOOKAHEAD(Identifier() "[" ( Expression() | IntegerLiteral() | Reference()) "]") ArrayAccess() |
  +      (LOOKAHEAD(3) Method() | Identifier() |  IntegerLiteral() )
  +
  +    )
  +  )*/*@bgen(jjtree)*/
     } catch (Throwable jjte000) {
       if (jjtc000) {
         jjtree.clearNodeScope(jjtn000);
  
  
  

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