You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2009/01/23 07:32:46 UTC

svn commit: r736963 [10/21] - in /ibatis/trunk/java/ibatis-3: ibatis-3-compat/src/main/java/com/ibatis/common/jdbc/ ibatis-3-compat/src/main/java/com/ibatis/common/resources/ ibatis-3-compat/src/main/java/com/ibatis/common/util/ ibatis-3-compat/src/mai...

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlParser.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlParser.java?rev=736963&r1=736962&r2=736963&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlParser.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlParser.java Thu Jan 22 22:32:36 2009
@@ -6,1751 +6,1946 @@
  * OgnlParser is a JavaCC parser class; it translates OGNL expressions into abstract
  * syntax trees (ASTs) that can then be interpreted by the getValue and setValue methods.
  */
-public class OgnlParser/*@bgen(jjtree)*/implements OgnlParserTreeConstants, OgnlParserConstants {/*@bgen(jjtree)*/
+public class OgnlParser/*@bgen(jjtree)*/ implements OgnlParserTreeConstants, OgnlParserConstants {/*@bgen(jjtree)*/
   protected JJTOgnlParserState jjtree = new JJTOgnlParserState();
 
-/**
- * This is the top-level construct of OGNL.
- */
+  /**
+   * This is the top-level construct of OGNL.
+   */
   final public Node topLevelExpression() throws ParseException {
     expression();
     jj_consume_token(0);
-                         {if (true) return jjtree.rootNode();}
+    {
+      if (true) return jjtree.rootNode();
+    }
     throw new Error("Missing return statement in function");
   }
 
-// sequence (level 14)
+  // sequence (level 14)
   final public void expression() throws ParseException {
     assignmentExpression();
     label_1:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 1:
-        ;
-        break;
-      default:
-        jj_la1[0] = jj_gen;
-        break label_1;
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 1:
+          ;
+          break;
+        default:
+          jj_la1[0] = jj_gen;
+          break label_1;
       }
       jj_consume_token(1);
-                                   ASTSequence jjtn001 = new ASTSequence(JJTSEQUENCE);
-                                   boolean jjtc001 = true;
-                                   jjtree.openNodeScope(jjtn001);
+      ASTSequence jjtn001 = new ASTSequence(JJTSEQUENCE);
+      boolean jjtc001 = true;
+      jjtree.openNodeScope(jjtn001);
       try {
         assignmentExpression();
       } catch (Throwable jjte001) {
-                                   if (jjtc001) {
-                                     jjtree.clearNodeScope(jjtn001);
-                                     jjtc001 = false;
-                                   } else {
-                                     jjtree.popNode();
-                                   }
-                                   if (jjte001 instanceof RuntimeException) {
-                                     {if (true) throw (RuntimeException)jjte001;}
-                                   }
-                                   if (jjte001 instanceof ParseException) {
-                                     {if (true) throw (ParseException)jjte001;}
-                                   }
-                                   {if (true) throw (Error)jjte001;}
+        if (jjtc001) {
+          jjtree.clearNodeScope(jjtn001);
+          jjtc001 = false;
+        } else {
+          jjtree.popNode();
+        }
+        if (jjte001 instanceof RuntimeException) {
+          {
+            if (true) throw (RuntimeException) jjte001;
+          }
+        }
+        if (jjte001 instanceof ParseException) {
+          {
+            if (true) throw (ParseException) jjte001;
+          }
+        }
+        {
+          if (true) throw (Error) jjte001;
+        }
       } finally {
-                                   if (jjtc001) {
-                                     jjtree.closeNodeScope(jjtn001,  2);
-                                   }
+        if (jjtc001) {
+          jjtree.closeNodeScope(jjtn001, 2);
+        }
       }
     }
   }
 
-// assignment expression (level 13)
+  // assignment expression (level 13)
   final public void assignmentExpression() throws ParseException {
     conditionalTestExpression();
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case 2:
-      jj_consume_token(2);
-                                        ASTAssign jjtn001 = new ASTAssign(JJTASSIGN);
-                                        boolean jjtc001 = true;
-                                        jjtree.openNodeScope(jjtn001);
-      try {
-        assignmentExpression();
-      } catch (Throwable jjte001) {
-                                        if (jjtc001) {
-                                          jjtree.clearNodeScope(jjtn001);
-                                          jjtc001 = false;
-                                        } else {
-                                          jjtree.popNode();
-                                        }
-                                        if (jjte001 instanceof RuntimeException) {
-                                          {if (true) throw (RuntimeException)jjte001;}
-                                        }
-                                        if (jjte001 instanceof ParseException) {
-                                          {if (true) throw (ParseException)jjte001;}
-                                        }
-                                        {if (true) throw (Error)jjte001;}
-      } finally {
-                                        if (jjtc001) {
-                                          jjtree.closeNodeScope(jjtn001,  2);
-                                        }
-      }
-      break;
-    default:
-      jj_la1[1] = jj_gen;
-      ;
+    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+      case 2:
+        jj_consume_token(2);
+        ASTAssign jjtn001 = new ASTAssign(JJTASSIGN);
+        boolean jjtc001 = true;
+        jjtree.openNodeScope(jjtn001);
+        try {
+          assignmentExpression();
+        } catch (Throwable jjte001) {
+          if (jjtc001) {
+            jjtree.clearNodeScope(jjtn001);
+            jjtc001 = false;
+          } else {
+            jjtree.popNode();
+          }
+          if (jjte001 instanceof RuntimeException) {
+            {
+              if (true) throw (RuntimeException) jjte001;
+            }
+          }
+          if (jjte001 instanceof ParseException) {
+            {
+              if (true) throw (ParseException) jjte001;
+            }
+          }
+          {
+            if (true) throw (Error) jjte001;
+          }
+        } finally {
+          if (jjtc001) {
+            jjtree.closeNodeScope(jjtn001, 2);
+          }
+        }
+        break;
+      default:
+        jj_la1[1] = jj_gen;
+        ;
     }
   }
 
-// conditional test (level 12)
+  // conditional test (level 12)
   final public void conditionalTestExpression() throws ParseException {
     logicalOrExpression();
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case 3:
-      jj_consume_token(3);
-      conditionalTestExpression();
-      jj_consume_token(4);
-                                                ASTTest jjtn001 = new ASTTest(JJTTEST);
-                                                boolean jjtc001 = true;
-                                                jjtree.openNodeScope(jjtn001);
-      try {
+    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+      case 3:
+        jj_consume_token(3);
         conditionalTestExpression();
-      } catch (Throwable jjte001) {
-                                                if (jjtc001) {
-                                                  jjtree.clearNodeScope(jjtn001);
-                                                  jjtc001 = false;
-                                                } else {
-                                                  jjtree.popNode();
-                                                }
-                                                if (jjte001 instanceof RuntimeException) {
-                                                  {if (true) throw (RuntimeException)jjte001;}
-                                                }
-                                                if (jjte001 instanceof ParseException) {
-                                                  {if (true) throw (ParseException)jjte001;}
-                                                }
-                                                {if (true) throw (Error)jjte001;}
-      } finally {
-                                                if (jjtc001) {
-                                                  jjtree.closeNodeScope(jjtn001,  3);
-                                                }
-      }
-      break;
-    default:
-      jj_la1[2] = jj_gen;
-      ;
+        jj_consume_token(4);
+        ASTTest jjtn001 = new ASTTest(JJTTEST);
+        boolean jjtc001 = true;
+        jjtree.openNodeScope(jjtn001);
+        try {
+          conditionalTestExpression();
+        } catch (Throwable jjte001) {
+          if (jjtc001) {
+            jjtree.clearNodeScope(jjtn001);
+            jjtc001 = false;
+          } else {
+            jjtree.popNode();
+          }
+          if (jjte001 instanceof RuntimeException) {
+            {
+              if (true) throw (RuntimeException) jjte001;
+            }
+          }
+          if (jjte001 instanceof ParseException) {
+            {
+              if (true) throw (ParseException) jjte001;
+            }
+          }
+          {
+            if (true) throw (Error) jjte001;
+          }
+        } finally {
+          if (jjtc001) {
+            jjtree.closeNodeScope(jjtn001, 3);
+          }
+        }
+        break;
+      default:
+        jj_la1[2] = jj_gen;
+        ;
     }
   }
 
-// logical or (||)  (level 11)
+  // logical or (||)  (level 11)
   final public void logicalOrExpression() throws ParseException {
     logicalAndExpression();
     label_2:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 5:
-      case 6:
-        ;
-        break;
-      default:
-        jj_la1[3] = jj_gen;
-        break label_2;
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 5:
+        case 6:
+          ;
+          break;
+        default:
+          jj_la1[3] = jj_gen;
+          break label_2;
       }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 5:
-        jj_consume_token(5);
-        break;
-      case 6:
-        jj_consume_token(6);
-        break;
-      default:
-        jj_la1[4] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 5:
+          jj_consume_token(5);
+          break;
+        case 6:
+          jj_consume_token(6);
+          break;
+        default:
+          jj_la1[4] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
       }
-                                            ASTOr jjtn001 = new ASTOr(JJTOR);
-                                            boolean jjtc001 = true;
-                                            jjtree.openNodeScope(jjtn001);
+      ASTOr jjtn001 = new ASTOr(JJTOR);
+      boolean jjtc001 = true;
+      jjtree.openNodeScope(jjtn001);
       try {
         logicalAndExpression();
       } catch (Throwable jjte001) {
-                                            if (jjtc001) {
-                                              jjtree.clearNodeScope(jjtn001);
-                                              jjtc001 = false;
-                                            } else {
-                                              jjtree.popNode();
-                                            }
-                                            if (jjte001 instanceof RuntimeException) {
-                                              {if (true) throw (RuntimeException)jjte001;}
-                                            }
-                                            if (jjte001 instanceof ParseException) {
-                                              {if (true) throw (ParseException)jjte001;}
-                                            }
-                                            {if (true) throw (Error)jjte001;}
+        if (jjtc001) {
+          jjtree.clearNodeScope(jjtn001);
+          jjtc001 = false;
+        } else {
+          jjtree.popNode();
+        }
+        if (jjte001 instanceof RuntimeException) {
+          {
+            if (true) throw (RuntimeException) jjte001;
+          }
+        }
+        if (jjte001 instanceof ParseException) {
+          {
+            if (true) throw (ParseException) jjte001;
+          }
+        }
+        {
+          if (true) throw (Error) jjte001;
+        }
       } finally {
-                                            if (jjtc001) {
-                                              jjtree.closeNodeScope(jjtn001,  2);
-                                            }
+        if (jjtc001) {
+          jjtree.closeNodeScope(jjtn001, 2);
+        }
       }
     }
   }
 
-// logical and (&&)  (level 10)
+  // logical and (&&)  (level 10)
   final public void logicalAndExpression() throws ParseException {
     inclusiveOrExpression();
     label_3:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 7:
-      case 8:
-        ;
-        break;
-      default:
-        jj_la1[5] = jj_gen;
-        break label_3;
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 7:
+        case 8:
+          ;
+          break;
+        default:
+          jj_la1[5] = jj_gen;
+          break label_3;
       }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 7:
-        jj_consume_token(7);
-        break;
-      case 8:
-        jj_consume_token(8);
-        break;
-      default:
-        jj_la1[6] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 7:
+          jj_consume_token(7);
+          break;
+        case 8:
+          jj_consume_token(8);
+          break;
+        default:
+          jj_la1[6] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
       }
-                                              ASTAnd jjtn001 = new ASTAnd(JJTAND);
-                                              boolean jjtc001 = true;
-                                              jjtree.openNodeScope(jjtn001);
+      ASTAnd jjtn001 = new ASTAnd(JJTAND);
+      boolean jjtc001 = true;
+      jjtree.openNodeScope(jjtn001);
       try {
         inclusiveOrExpression();
       } catch (Throwable jjte001) {
-                                              if (jjtc001) {
-                                                jjtree.clearNodeScope(jjtn001);
-                                                jjtc001 = false;
-                                              } else {
-                                                jjtree.popNode();
-                                              }
-                                              if (jjte001 instanceof RuntimeException) {
-                                                {if (true) throw (RuntimeException)jjte001;}
-                                              }
-                                              if (jjte001 instanceof ParseException) {
-                                                {if (true) throw (ParseException)jjte001;}
-                                              }
-                                              {if (true) throw (Error)jjte001;}
+        if (jjtc001) {
+          jjtree.clearNodeScope(jjtn001);
+          jjtc001 = false;
+        } else {
+          jjtree.popNode();
+        }
+        if (jjte001 instanceof RuntimeException) {
+          {
+            if (true) throw (RuntimeException) jjte001;
+          }
+        }
+        if (jjte001 instanceof ParseException) {
+          {
+            if (true) throw (ParseException) jjte001;
+          }
+        }
+        {
+          if (true) throw (Error) jjte001;
+        }
       } finally {
-                                              if (jjtc001) {
-                                                jjtree.closeNodeScope(jjtn001,  2);
-                                              }
+        if (jjtc001) {
+          jjtree.closeNodeScope(jjtn001, 2);
+        }
       }
     }
   }
 
-// bitwise or non-short-circuiting or (|)  (level 9)
+  // bitwise or non-short-circuiting or (|)  (level 9)
   final public void inclusiveOrExpression() throws ParseException {
     exclusiveOrExpression();
     label_4:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 9:
-      case 10:
-        ;
-        break;
-      default:
-        jj_la1[7] = jj_gen;
-        break label_4;
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 9:
+        case 10:
+          ;
+          break;
+        default:
+          jj_la1[7] = jj_gen;
+          break label_4;
       }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 9:
-        jj_consume_token(9);
-        break;
-      case 10:
-        jj_consume_token(10);
-        break;
-      default:
-        jj_la1[8] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 9:
+          jj_consume_token(9);
+          break;
+        case 10:
+          jj_consume_token(10);
+          break;
+        default:
+          jj_la1[8] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
       }
-                                             ASTBitOr jjtn001 = new ASTBitOr(JJTBITOR);
-                                             boolean jjtc001 = true;
-                                             jjtree.openNodeScope(jjtn001);
+      ASTBitOr jjtn001 = new ASTBitOr(JJTBITOR);
+      boolean jjtc001 = true;
+      jjtree.openNodeScope(jjtn001);
       try {
         exclusiveOrExpression();
       } catch (Throwable jjte001) {
-                                             if (jjtc001) {
-                                               jjtree.clearNodeScope(jjtn001);
-                                               jjtc001 = false;
-                                             } else {
-                                               jjtree.popNode();
-                                             }
-                                             if (jjte001 instanceof RuntimeException) {
-                                               {if (true) throw (RuntimeException)jjte001;}
-                                             }
-                                             if (jjte001 instanceof ParseException) {
-                                               {if (true) throw (ParseException)jjte001;}
-                                             }
-                                             {if (true) throw (Error)jjte001;}
+        if (jjtc001) {
+          jjtree.clearNodeScope(jjtn001);
+          jjtc001 = false;
+        } else {
+          jjtree.popNode();
+        }
+        if (jjte001 instanceof RuntimeException) {
+          {
+            if (true) throw (RuntimeException) jjte001;
+          }
+        }
+        if (jjte001 instanceof ParseException) {
+          {
+            if (true) throw (ParseException) jjte001;
+          }
+        }
+        {
+          if (true) throw (Error) jjte001;
+        }
       } finally {
-                                             if (jjtc001) {
-                                               jjtree.closeNodeScope(jjtn001,  2);
-                                             }
+        if (jjtc001) {
+          jjtree.closeNodeScope(jjtn001, 2);
+        }
       }
     }
   }
 
-// exclusive or (^)  (level 8)
+  // exclusive or (^)  (level 8)
   final public void exclusiveOrExpression() throws ParseException {
     andExpression();
     label_5:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 11:
-      case 12:
-        ;
-        break;
-      default:
-        jj_la1[9] = jj_gen;
-        break label_5;
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 11:
+        case 12:
+          ;
+          break;
+        default:
+          jj_la1[9] = jj_gen;
+          break label_5;
       }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 11:
-        jj_consume_token(11);
-        break;
-      case 12:
-        jj_consume_token(12);
-        break;
-      default:
-        jj_la1[10] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 11:
+          jj_consume_token(11);
+          break;
+        case 12:
+          jj_consume_token(12);
+          break;
+        default:
+          jj_la1[10] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
       }
-                                     ASTXor jjtn001 = new ASTXor(JJTXOR);
-                                     boolean jjtc001 = true;
-                                     jjtree.openNodeScope(jjtn001);
+      ASTXor jjtn001 = new ASTXor(JJTXOR);
+      boolean jjtc001 = true;
+      jjtree.openNodeScope(jjtn001);
       try {
         andExpression();
       } catch (Throwable jjte001) {
-                                     if (jjtc001) {
-                                       jjtree.clearNodeScope(jjtn001);
-                                       jjtc001 = false;
-                                     } else {
-                                       jjtree.popNode();
-                                     }
-                                     if (jjte001 instanceof RuntimeException) {
-                                       {if (true) throw (RuntimeException)jjte001;}
-                                     }
-                                     if (jjte001 instanceof ParseException) {
-                                       {if (true) throw (ParseException)jjte001;}
-                                     }
-                                     {if (true) throw (Error)jjte001;}
+        if (jjtc001) {
+          jjtree.clearNodeScope(jjtn001);
+          jjtc001 = false;
+        } else {
+          jjtree.popNode();
+        }
+        if (jjte001 instanceof RuntimeException) {
+          {
+            if (true) throw (RuntimeException) jjte001;
+          }
+        }
+        if (jjte001 instanceof ParseException) {
+          {
+            if (true) throw (ParseException) jjte001;
+          }
+        }
+        {
+          if (true) throw (Error) jjte001;
+        }
       } finally {
-                                     if (jjtc001) {
-                                       jjtree.closeNodeScope(jjtn001,  2);
-                                     }
+        if (jjtc001) {
+          jjtree.closeNodeScope(jjtn001, 2);
+        }
       }
     }
   }
 
-// bitwise or non-short-circuiting and (&)  (level 7)
+  // bitwise or non-short-circuiting and (&)  (level 7)
   final public void andExpression() throws ParseException {
     equalityExpression();
     label_6:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 13:
-      case 14:
-        ;
-        break;
-      default:
-        jj_la1[11] = jj_gen;
-        break label_6;
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 13:
+        case 14:
+          ;
+          break;
+        default:
+          jj_la1[11] = jj_gen;
+          break label_6;
       }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 13:
-        jj_consume_token(13);
-        break;
-      case 14:
-        jj_consume_token(14);
-        break;
-      default:
-        jj_la1[12] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 13:
+          jj_consume_token(13);
+          break;
+        case 14:
+          jj_consume_token(14);
+          break;
+        default:
+          jj_la1[12] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
       }
-                                           ASTBitAnd jjtn001 = new ASTBitAnd(JJTBITAND);
-                                           boolean jjtc001 = true;
-                                           jjtree.openNodeScope(jjtn001);
+      ASTBitAnd jjtn001 = new ASTBitAnd(JJTBITAND);
+      boolean jjtc001 = true;
+      jjtree.openNodeScope(jjtn001);
       try {
         equalityExpression();
       } catch (Throwable jjte001) {
-                                           if (jjtc001) {
-                                             jjtree.clearNodeScope(jjtn001);
-                                             jjtc001 = false;
-                                           } else {
-                                             jjtree.popNode();
-                                           }
-                                           if (jjte001 instanceof RuntimeException) {
-                                             {if (true) throw (RuntimeException)jjte001;}
-                                           }
-                                           if (jjte001 instanceof ParseException) {
-                                             {if (true) throw (ParseException)jjte001;}
-                                           }
-                                           {if (true) throw (Error)jjte001;}
+        if (jjtc001) {
+          jjtree.clearNodeScope(jjtn001);
+          jjtc001 = false;
+        } else {
+          jjtree.popNode();
+        }
+        if (jjte001 instanceof RuntimeException) {
+          {
+            if (true) throw (RuntimeException) jjte001;
+          }
+        }
+        if (jjte001 instanceof ParseException) {
+          {
+            if (true) throw (ParseException) jjte001;
+          }
+        }
+        {
+          if (true) throw (Error) jjte001;
+        }
       } finally {
-                                           if (jjtc001) {
-                                             jjtree.closeNodeScope(jjtn001,  2);
-                                           }
+        if (jjtc001) {
+          jjtree.closeNodeScope(jjtn001, 2);
+        }
       }
     }
   }
 
-// equality/inequality (==/!=) (level 6)
+  // equality/inequality (==/!=) (level 6)
   final public void equalityExpression() throws ParseException {
     relationalExpression();
     label_7:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 15:
-      case 16:
-      case 17:
-      case 18:
-        ;
-        break;
-      default:
-        jj_la1[13] = jj_gen;
-        break label_7;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 15:
-      case 16:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
         case 15:
-          jj_consume_token(15);
-          break;
         case 16:
-          jj_consume_token(16);
+        case 17:
+        case 18:
+          ;
           break;
         default:
-          jj_la1[14] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                        ASTEq jjtn001 = new ASTEq(JJTEQ);
-                        boolean jjtc001 = true;
-                        jjtree.openNodeScope(jjtn001);
-        try {
-          relationalExpression();
-        } catch (Throwable jjte001) {
-                        if (jjtc001) {
-                          jjtree.clearNodeScope(jjtn001);
-                          jjtc001 = false;
-                        } else {
-                          jjtree.popNode();
-                        }
-                        if (jjte001 instanceof RuntimeException) {
-                          {if (true) throw (RuntimeException)jjte001;}
-                        }
-                        if (jjte001 instanceof ParseException) {
-                          {if (true) throw (ParseException)jjte001;}
-                        }
-                        {if (true) throw (Error)jjte001;}
-        } finally {
-                        if (jjtc001) {
-                          jjtree.closeNodeScope(jjtn001,  2);
-                        }
-        }
-        break;
-      case 17:
-      case 18:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case 17:
-          jj_consume_token(17);
+          jj_la1[13] = jj_gen;
+          break label_7;
+      }
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 15:
+        case 16:
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 15:
+              jj_consume_token(15);
+              break;
+            case 16:
+              jj_consume_token(16);
+              break;
+            default:
+              jj_la1[14] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTEq jjtn001 = new ASTEq(JJTEQ);
+          boolean jjtc001 = true;
+          jjtree.openNodeScope(jjtn001);
+          try {
+            relationalExpression();
+          } catch (Throwable jjte001) {
+            if (jjtc001) {
+              jjtree.clearNodeScope(jjtn001);
+              jjtc001 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte001 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte001;
+              }
+            }
+            if (jjte001 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte001;
+              }
+            }
+            {
+              if (true) throw (Error) jjte001;
+            }
+          } finally {
+            if (jjtc001) {
+              jjtree.closeNodeScope(jjtn001, 2);
+            }
+          }
           break;
+        case 17:
         case 18:
-          jj_consume_token(18);
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 17:
+              jj_consume_token(17);
+              break;
+            case 18:
+              jj_consume_token(18);
+              break;
+            default:
+              jj_la1[15] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTNotEq jjtn002 = new ASTNotEq(JJTNOTEQ);
+          boolean jjtc002 = true;
+          jjtree.openNodeScope(jjtn002);
+          try {
+            relationalExpression();
+          } catch (Throwable jjte002) {
+            if (jjtc002) {
+              jjtree.clearNodeScope(jjtn002);
+              jjtc002 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte002 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte002;
+              }
+            }
+            if (jjte002 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte002;
+              }
+            }
+            {
+              if (true) throw (Error) jjte002;
+            }
+          } finally {
+            if (jjtc002) {
+              jjtree.closeNodeScope(jjtn002, 2);
+            }
+          }
           break;
         default:
-          jj_la1[15] = jj_gen;
+          jj_la1[16] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
-        }
-                         ASTNotEq jjtn002 = new ASTNotEq(JJTNOTEQ);
-                         boolean jjtc002 = true;
-                         jjtree.openNodeScope(jjtn002);
-        try {
-          relationalExpression();
-        } catch (Throwable jjte002) {
-                         if (jjtc002) {
-                           jjtree.clearNodeScope(jjtn002);
-                           jjtc002 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte002 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte002;}
-                         }
-                         if (jjte002 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte002;}
-                         }
-                         {if (true) throw (Error)jjte002;}
-        } finally {
-                         if (jjtc002) {
-                           jjtree.closeNodeScope(jjtn002,  2);
-                         }
-        }
-        break;
-      default:
-        jj_la1[16] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
       }
     }
   }
 
-// boolean relational expressions (level 5)
+  // boolean relational expressions (level 5)
   final public void relationalExpression() throws ParseException {
     shiftExpression();
     label_8:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 19:
-      case 20:
-      case 21:
-      case 22:
-      case 23:
-      case 24:
-      case 25:
-      case 26:
-      case 27:
-      case 28:
-        ;
-        break;
-      default:
-        jj_la1[17] = jj_gen;
-        break label_8;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 19:
-      case 20:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
         case 19:
-          jj_consume_token(19);
-          break;
         case 20:
-          jj_consume_token(20);
+        case 21:
+        case 22:
+        case 23:
+        case 24:
+        case 25:
+        case 26:
+        case 27:
+        case 28:
+          ;
           break;
         default:
-          jj_la1[18] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                       ASTLess jjtn001 = new ASTLess(JJTLESS);
-                       boolean jjtc001 = true;
-                       jjtree.openNodeScope(jjtn001);
-        try {
-          shiftExpression();
-        } catch (Throwable jjte001) {
-                       if (jjtc001) {
-                         jjtree.clearNodeScope(jjtn001);
-                         jjtc001 = false;
-                       } else {
-                         jjtree.popNode();
-                       }
-                       if (jjte001 instanceof RuntimeException) {
-                         {if (true) throw (RuntimeException)jjte001;}
-                       }
-                       if (jjte001 instanceof ParseException) {
-                         {if (true) throw (ParseException)jjte001;}
-                       }
-                       {if (true) throw (Error)jjte001;}
-        } finally {
-                       if (jjtc001) {
-                         jjtree.closeNodeScope(jjtn001,  2);
-                       }
-        }
-        break;
-      case 21:
-      case 22:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case 21:
-          jj_consume_token(21);
+          jj_la1[17] = jj_gen;
+          break label_8;
+      }
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 19:
+        case 20:
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 19:
+              jj_consume_token(19);
+              break;
+            case 20:
+              jj_consume_token(20);
+              break;
+            default:
+              jj_la1[18] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTLess jjtn001 = new ASTLess(JJTLESS);
+          boolean jjtc001 = true;
+          jjtree.openNodeScope(jjtn001);
+          try {
+            shiftExpression();
+          } catch (Throwable jjte001) {
+            if (jjtc001) {
+              jjtree.clearNodeScope(jjtn001);
+              jjtc001 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte001 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte001;
+              }
+            }
+            if (jjte001 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte001;
+              }
+            }
+            {
+              if (true) throw (Error) jjte001;
+            }
+          } finally {
+            if (jjtc001) {
+              jjtree.closeNodeScope(jjtn001, 2);
+            }
+          }
           break;
+        case 21:
         case 22:
-          jj_consume_token(22);
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 21:
+              jj_consume_token(21);
+              break;
+            case 22:
+              jj_consume_token(22);
+              break;
+            default:
+              jj_la1[19] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTGreater jjtn002 = new ASTGreater(JJTGREATER);
+          boolean jjtc002 = true;
+          jjtree.openNodeScope(jjtn002);
+          try {
+            shiftExpression();
+          } catch (Throwable jjte002) {
+            if (jjtc002) {
+              jjtree.clearNodeScope(jjtn002);
+              jjtc002 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte002 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte002;
+              }
+            }
+            if (jjte002 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte002;
+              }
+            }
+            {
+              if (true) throw (Error) jjte002;
+            }
+          } finally {
+            if (jjtc002) {
+              jjtree.closeNodeScope(jjtn002, 2);
+            }
+          }
           break;
-        default:
-          jj_la1[19] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                       ASTGreater jjtn002 = new ASTGreater(JJTGREATER);
-                       boolean jjtc002 = true;
-                       jjtree.openNodeScope(jjtn002);
-        try {
-          shiftExpression();
-        } catch (Throwable jjte002) {
-                       if (jjtc002) {
-                         jjtree.clearNodeScope(jjtn002);
-                         jjtc002 = false;
-                       } else {
-                         jjtree.popNode();
-                       }
-                       if (jjte002 instanceof RuntimeException) {
-                         {if (true) throw (RuntimeException)jjte002;}
-                       }
-                       if (jjte002 instanceof ParseException) {
-                         {if (true) throw (ParseException)jjte002;}
-                       }
-                       {if (true) throw (Error)jjte002;}
-        } finally {
-                       if (jjtc002) {
-                         jjtree.closeNodeScope(jjtn002,  2);
-                       }
-        }
-        break;
-      case 23:
-      case 24:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case 23:
-          jj_consume_token(23);
-          break;
         case 24:
-          jj_consume_token(24);
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 23:
+              jj_consume_token(23);
+              break;
+            case 24:
+              jj_consume_token(24);
+              break;
+            default:
+              jj_la1[20] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTLessEq jjtn003 = new ASTLessEq(JJTLESSEQ);
+          boolean jjtc003 = true;
+          jjtree.openNodeScope(jjtn003);
+          try {
+            shiftExpression();
+          } catch (Throwable jjte003) {
+            if (jjtc003) {
+              jjtree.clearNodeScope(jjtn003);
+              jjtc003 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte003 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte003;
+              }
+            }
+            if (jjte003 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte003;
+              }
+            }
+            {
+              if (true) throw (Error) jjte003;
+            }
+          } finally {
+            if (jjtc003) {
+              jjtree.closeNodeScope(jjtn003, 2);
+            }
+          }
           break;
-        default:
-          jj_la1[20] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         ASTLessEq jjtn003 = new ASTLessEq(JJTLESSEQ);
-                         boolean jjtc003 = true;
-                         jjtree.openNodeScope(jjtn003);
-        try {
-          shiftExpression();
-        } catch (Throwable jjte003) {
-                         if (jjtc003) {
-                           jjtree.clearNodeScope(jjtn003);
-                           jjtc003 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte003 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte003;}
-                         }
-                         if (jjte003 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte003;}
-                         }
-                         {if (true) throw (Error)jjte003;}
-        } finally {
-                         if (jjtc003) {
-                           jjtree.closeNodeScope(jjtn003,  2);
-                         }
-        }
-        break;
-      case 25:
-      case 26:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case 25:
-          jj_consume_token(25);
-          break;
         case 26:
-          jj_consume_token(26);
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 25:
+              jj_consume_token(25);
+              break;
+            case 26:
+              jj_consume_token(26);
+              break;
+            default:
+              jj_la1[21] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTGreaterEq jjtn004 = new ASTGreaterEq(JJTGREATEREQ);
+          boolean jjtc004 = true;
+          jjtree.openNodeScope(jjtn004);
+          try {
+            shiftExpression();
+          } catch (Throwable jjte004) {
+            if (jjtc004) {
+              jjtree.clearNodeScope(jjtn004);
+              jjtc004 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte004 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte004;
+              }
+            }
+            if (jjte004 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte004;
+              }
+            }
+            {
+              if (true) throw (Error) jjte004;
+            }
+          } finally {
+            if (jjtc004) {
+              jjtree.closeNodeScope(jjtn004, 2);
+            }
+          }
+          break;
+        case 27:
+          jj_consume_token(27);
+          ASTIn jjtn005 = new ASTIn(JJTIN);
+          boolean jjtc005 = true;
+          jjtree.openNodeScope(jjtn005);
+          try {
+            shiftExpression();
+          } catch (Throwable jjte005) {
+            if (jjtc005) {
+              jjtree.clearNodeScope(jjtn005);
+              jjtc005 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte005 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte005;
+              }
+            }
+            if (jjte005 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte005;
+              }
+            }
+            {
+              if (true) throw (Error) jjte005;
+            }
+          } finally {
+            if (jjtc005) {
+              jjtree.closeNodeScope(jjtn005, 2);
+            }
+          }
+          break;
+        case 28:
+          jj_consume_token(28);
+          jj_consume_token(27);
+          ASTNotIn jjtn006 = new ASTNotIn(JJTNOTIN);
+          boolean jjtc006 = true;
+          jjtree.openNodeScope(jjtn006);
+          try {
+            shiftExpression();
+          } catch (Throwable jjte006) {
+            if (jjtc006) {
+              jjtree.clearNodeScope(jjtn006);
+              jjtc006 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte006 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte006;
+              }
+            }
+            if (jjte006 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte006;
+              }
+            }
+            {
+              if (true) throw (Error) jjte006;
+            }
+          } finally {
+            if (jjtc006) {
+              jjtree.closeNodeScope(jjtn006, 2);
+            }
+          }
           break;
         default:
-          jj_la1[21] = jj_gen;
+          jj_la1[22] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
-        }
-                         ASTGreaterEq jjtn004 = new ASTGreaterEq(JJTGREATEREQ);
-                         boolean jjtc004 = true;
-                         jjtree.openNodeScope(jjtn004);
-        try {
-          shiftExpression();
-        } catch (Throwable jjte004) {
-                         if (jjtc004) {
-                           jjtree.clearNodeScope(jjtn004);
-                           jjtc004 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte004 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte004;}
-                         }
-                         if (jjte004 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte004;}
-                         }
-                         {if (true) throw (Error)jjte004;}
-        } finally {
-                         if (jjtc004) {
-                           jjtree.closeNodeScope(jjtn004,  2);
-                         }
-        }
-        break;
-      case 27:
-        jj_consume_token(27);
-               ASTIn jjtn005 = new ASTIn(JJTIN);
-               boolean jjtc005 = true;
-               jjtree.openNodeScope(jjtn005);
-        try {
-          shiftExpression();
-        } catch (Throwable jjte005) {
-               if (jjtc005) {
-                 jjtree.clearNodeScope(jjtn005);
-                 jjtc005 = false;
-               } else {
-                 jjtree.popNode();
-               }
-               if (jjte005 instanceof RuntimeException) {
-                 {if (true) throw (RuntimeException)jjte005;}
-               }
-               if (jjte005 instanceof ParseException) {
-                 {if (true) throw (ParseException)jjte005;}
-               }
-               {if (true) throw (Error)jjte005;}
-        } finally {
-               if (jjtc005) {
-                 jjtree.closeNodeScope(jjtn005,  2);
-               }
-        }
-        break;
-      case 28:
-        jj_consume_token(28);
-        jj_consume_token(27);
-                     ASTNotIn jjtn006 = new ASTNotIn(JJTNOTIN);
-                     boolean jjtc006 = true;
-                     jjtree.openNodeScope(jjtn006);
-        try {
-          shiftExpression();
-        } catch (Throwable jjte006) {
-                     if (jjtc006) {
-                       jjtree.clearNodeScope(jjtn006);
-                       jjtc006 = false;
-                     } else {
-                       jjtree.popNode();
-                     }
-                     if (jjte006 instanceof RuntimeException) {
-                       {if (true) throw (RuntimeException)jjte006;}
-                     }
-                     if (jjte006 instanceof ParseException) {
-                       {if (true) throw (ParseException)jjte006;}
-                     }
-                     {if (true) throw (Error)jjte006;}
-        } finally {
-                     if (jjtc006) {
-                       jjtree.closeNodeScope(jjtn006,  2);
-                     }
-        }
-        break;
-      default:
-        jj_la1[22] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
       }
     }
   }
 
-// bit shift expressions (level 4)
+  // bit shift expressions (level 4)
   final public void shiftExpression() throws ParseException {
     additiveExpression();
     label_9:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 29:
-      case 30:
-      case 31:
-      case 32:
-      case 33:
-      case 34:
-        ;
-        break;
-      default:
-        jj_la1[23] = jj_gen;
-        break label_9;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 29:
-      case 30:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
         case 29:
-          jj_consume_token(29);
-          break;
         case 30:
-          jj_consume_token(30);
+        case 31:
+        case 32:
+        case 33:
+        case 34:
+          ;
           break;
         default:
-          jj_la1[24] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         ASTShiftLeft jjtn001 = new ASTShiftLeft(JJTSHIFTLEFT);
-                         boolean jjtc001 = true;
-                         jjtree.openNodeScope(jjtn001);
-        try {
-          additiveExpression();
-        } catch (Throwable jjte001) {
-                         if (jjtc001) {
-                           jjtree.clearNodeScope(jjtn001);
-                           jjtc001 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte001 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte001;}
-                         }
-                         if (jjte001 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte001;}
-                         }
-                         {if (true) throw (Error)jjte001;}
-        } finally {
-                         if (jjtc001) {
-                           jjtree.closeNodeScope(jjtn001,  2);
-                         }
-        }
-        break;
-      case 31:
-      case 32:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-        case 31:
-          jj_consume_token(31);
+          jj_la1[23] = jj_gen;
+          break label_9;
+      }
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 29:
+        case 30:
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 29:
+              jj_consume_token(29);
+              break;
+            case 30:
+              jj_consume_token(30);
+              break;
+            default:
+              jj_la1[24] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTShiftLeft jjtn001 = new ASTShiftLeft(JJTSHIFTLEFT);
+          boolean jjtc001 = true;
+          jjtree.openNodeScope(jjtn001);
+          try {
+            additiveExpression();
+          } catch (Throwable jjte001) {
+            if (jjtc001) {
+              jjtree.clearNodeScope(jjtn001);
+              jjtc001 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte001 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte001;
+              }
+            }
+            if (jjte001 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte001;
+              }
+            }
+            {
+              if (true) throw (Error) jjte001;
+            }
+          } finally {
+            if (jjtc001) {
+              jjtree.closeNodeScope(jjtn001, 2);
+            }
+          }
           break;
+        case 31:
         case 32:
-          jj_consume_token(32);
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 31:
+              jj_consume_token(31);
+              break;
+            case 32:
+              jj_consume_token(32);
+              break;
+            default:
+              jj_la1[25] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTShiftRight jjtn002 = new ASTShiftRight(JJTSHIFTRIGHT);
+          boolean jjtc002 = true;
+          jjtree.openNodeScope(jjtn002);
+          try {
+            additiveExpression();
+          } catch (Throwable jjte002) {
+            if (jjtc002) {
+              jjtree.clearNodeScope(jjtn002);
+              jjtc002 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte002 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte002;
+              }
+            }
+            if (jjte002 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte002;
+              }
+            }
+            {
+              if (true) throw (Error) jjte002;
+            }
+          } finally {
+            if (jjtc002) {
+              jjtree.closeNodeScope(jjtn002, 2);
+            }
+          }
           break;
-        default:
-          jj_la1[25] = jj_gen;
-          jj_consume_token(-1);
-          throw new ParseException();
-        }
-                         ASTShiftRight jjtn002 = new ASTShiftRight(JJTSHIFTRIGHT);
-                         boolean jjtc002 = true;
-                         jjtree.openNodeScope(jjtn002);
-        try {
-          additiveExpression();
-        } catch (Throwable jjte002) {
-                         if (jjtc002) {
-                           jjtree.clearNodeScope(jjtn002);
-                           jjtc002 = false;
-                         } else {
-                           jjtree.popNode();
-                         }
-                         if (jjte002 instanceof RuntimeException) {
-                           {if (true) throw (RuntimeException)jjte002;}
-                         }
-                         if (jjte002 instanceof ParseException) {
-                           {if (true) throw (ParseException)jjte002;}
-                         }
-                         {if (true) throw (Error)jjte002;}
-        } finally {
-                         if (jjtc002) {
-                           jjtree.closeNodeScope(jjtn002,  2);
-                         }
-        }
-        break;
-      case 33:
-      case 34:
-        switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case 33:
-          jj_consume_token(33);
-          break;
         case 34:
-          jj_consume_token(34);
+          switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+            case 33:
+              jj_consume_token(33);
+              break;
+            case 34:
+              jj_consume_token(34);
+              break;
+            default:
+              jj_la1[26] = jj_gen;
+              jj_consume_token(-1);
+              throw new ParseException();
+          }
+          ASTUnsignedShiftRight jjtn003 = new ASTUnsignedShiftRight(JJTUNSIGNEDSHIFTRIGHT);
+          boolean jjtc003 = true;
+          jjtree.openNodeScope(jjtn003);
+          try {
+            additiveExpression();
+          } catch (Throwable jjte003) {
+            if (jjtc003) {
+              jjtree.clearNodeScope(jjtn003);
+              jjtc003 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte003 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte003;
+              }
+            }
+            if (jjte003 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte003;
+              }
+            }
+            {
+              if (true) throw (Error) jjte003;
+            }
+          } finally {
+            if (jjtc003) {
+              jjtree.closeNodeScope(jjtn003, 2);
+            }
+          }
           break;
         default:
-          jj_la1[26] = jj_gen;
+          jj_la1[27] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
-        }
-                           ASTUnsignedShiftRight jjtn003 = new ASTUnsignedShiftRight(JJTUNSIGNEDSHIFTRIGHT);
-                           boolean jjtc003 = true;
-                           jjtree.openNodeScope(jjtn003);
-        try {
-          additiveExpression();
-        } catch (Throwable jjte003) {
-                           if (jjtc003) {
-                             jjtree.clearNodeScope(jjtn003);
-                             jjtc003 = false;
-                           } else {
-                             jjtree.popNode();
-                           }
-                           if (jjte003 instanceof RuntimeException) {
-                             {if (true) throw (RuntimeException)jjte003;}
-                           }
-                           if (jjte003 instanceof ParseException) {
-                             {if (true) throw (ParseException)jjte003;}
-                           }
-                           {if (true) throw (Error)jjte003;}
-        } finally {
-                           if (jjtc003) {
-                             jjtree.closeNodeScope(jjtn003,  2);
-                           }
-        }
-        break;
-      default:
-        jj_la1[27] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
       }
     }
   }
 
-// binary addition/subtraction (level 3)
+  // binary addition/subtraction (level 3)
   final public void additiveExpression() throws ParseException {
     multiplicativeExpression();
     label_10:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 35:
-      case 36:
-        ;
-        break;
-      default:
-        jj_la1[28] = jj_gen;
-        break label_10;
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 35:
+        case 36:
+          ;
+          break;
+        default:
+          jj_la1[28] = jj_gen;
+          break label_10;
       }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 35:
-        jj_consume_token(35);
-              ASTAdd jjtn001 = new ASTAdd(JJTADD);
-              boolean jjtc001 = true;
-              jjtree.openNodeScope(jjtn001);
-        try {
-          multiplicativeExpression();
-        } catch (Throwable jjte001) {
-              if (jjtc001) {
-                jjtree.clearNodeScope(jjtn001);
-                jjtc001 = false;
-              } else {
-                jjtree.popNode();
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 35:
+          jj_consume_token(35);
+          ASTAdd jjtn001 = new ASTAdd(JJTADD);
+          boolean jjtc001 = true;
+          jjtree.openNodeScope(jjtn001);
+          try {
+            multiplicativeExpression();
+          } catch (Throwable jjte001) {
+            if (jjtc001) {
+              jjtree.clearNodeScope(jjtn001);
+              jjtc001 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte001 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte001;
+              }
+            }
+            if (jjte001 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte001;
               }
-              if (jjte001 instanceof RuntimeException) {
-                {if (true) throw (RuntimeException)jjte001;}
+            }
+            {
+              if (true) throw (Error) jjte001;
+            }
+          } finally {
+            if (jjtc001) {
+              jjtree.closeNodeScope(jjtn001, 2);
+            }
+          }
+          break;
+        case 36:
+          jj_consume_token(36);
+          ASTSubtract jjtn002 = new ASTSubtract(JJTSUBTRACT);
+          boolean jjtc002 = true;
+          jjtree.openNodeScope(jjtn002);
+          try {
+            multiplicativeExpression();
+          } catch (Throwable jjte002) {
+            if (jjtc002) {
+              jjtree.clearNodeScope(jjtn002);
+              jjtc002 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte002 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte002;
+              }
+            }
+            if (jjte002 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte002;
               }
-              if (jjte001 instanceof ParseException) {
-                {if (true) throw (ParseException)jjte001;}
+            }
+            {
+              if (true) throw (Error) jjte002;
+            }
+          } finally {
+            if (jjtc002) {
+              jjtree.closeNodeScope(jjtn002, 2);
+            }
+          }
+          break;
+        default:
+          jj_la1[29] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
+      }
+    }
+  }
+
+  // multiplication/division/remainder (level 2)
+  final public void multiplicativeExpression() throws ParseException {
+    unaryExpression();
+    label_11:
+    while (true) {
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 37:
+        case 38:
+        case 39:
+          ;
+          break;
+        default:
+          jj_la1[30] = jj_gen;
+          break label_11;
+      }
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 37:
+          jj_consume_token(37);
+          ASTMultiply jjtn001 = new ASTMultiply(JJTMULTIPLY);
+          boolean jjtc001 = true;
+          jjtree.openNodeScope(jjtn001);
+          try {
+            unaryExpression();
+          } catch (Throwable jjte001) {
+            if (jjtc001) {
+              jjtree.clearNodeScope(jjtn001);
+              jjtc001 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte001 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte001;
               }
-              {if (true) throw (Error)jjte001;}
-        } finally {
-              if (jjtc001) {
-                jjtree.closeNodeScope(jjtn001,  2);
+            }
+            if (jjte001 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte001;
               }
-        }
-        break;
-      case 36:
-        jj_consume_token(36);
-              ASTSubtract jjtn002 = new ASTSubtract(JJTSUBTRACT);
-              boolean jjtc002 = true;
-              jjtree.openNodeScope(jjtn002);
-        try {
-          multiplicativeExpression();
-        } catch (Throwable jjte002) {
-              if (jjtc002) {
-                jjtree.clearNodeScope(jjtn002);
-                jjtc002 = false;
-              } else {
-                jjtree.popNode();
+            }
+            {
+              if (true) throw (Error) jjte001;
+            }
+          } finally {
+            if (jjtc001) {
+              jjtree.closeNodeScope(jjtn001, 2);
+            }
+          }
+          break;
+        case 38:
+          jj_consume_token(38);
+          ASTDivide jjtn002 = new ASTDivide(JJTDIVIDE);
+          boolean jjtc002 = true;
+          jjtree.openNodeScope(jjtn002);
+          try {
+            unaryExpression();
+          } catch (Throwable jjte002) {
+            if (jjtc002) {
+              jjtree.clearNodeScope(jjtn002);
+              jjtc002 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte002 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte002;
               }
-              if (jjte002 instanceof RuntimeException) {
-                {if (true) throw (RuntimeException)jjte002;}
+            }
+            if (jjte002 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte002;
               }
-              if (jjte002 instanceof ParseException) {
-                {if (true) throw (ParseException)jjte002;}
+            }
+            {
+              if (true) throw (Error) jjte002;
+            }
+          } finally {
+            if (jjtc002) {
+              jjtree.closeNodeScope(jjtn002, 2);
+            }
+          }
+          break;
+        case 39:
+          jj_consume_token(39);
+          ASTRemainder jjtn003 = new ASTRemainder(JJTREMAINDER);
+          boolean jjtc003 = true;
+          jjtree.openNodeScope(jjtn003);
+          try {
+            unaryExpression();
+          } catch (Throwable jjte003) {
+            if (jjtc003) {
+              jjtree.clearNodeScope(jjtn003);
+              jjtc003 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte003 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte003;
               }
-              {if (true) throw (Error)jjte002;}
-        } finally {
-              if (jjtc002) {
-                jjtree.closeNodeScope(jjtn002,  2);
+            }
+            if (jjte003 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte003;
               }
-        }
-        break;
-      default:
-        jj_la1[29] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
+            }
+            {
+              if (true) throw (Error) jjte003;
+            }
+          } finally {
+            if (jjtc003) {
+              jjtree.closeNodeScope(jjtn003, 2);
+            }
+          }
+          break;
+        default:
+          jj_la1[31] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
       }
     }
   }
 
-// multiplication/division/remainder (level 2)
-  final public void multiplicativeExpression() throws ParseException {
-    unaryExpression();
-    label_11:
-    while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 37:
-      case 38:
-      case 39:
-        ;
-        break;
-      default:
-        jj_la1[30] = jj_gen;
-        break label_11;
-      }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 37:
-        jj_consume_token(37);
-              ASTMultiply jjtn001 = new ASTMultiply(JJTMULTIPLY);
-              boolean jjtc001 = true;
-              jjtree.openNodeScope(jjtn001);
+  // unary (level 1)
+  final public void unaryExpression() throws ParseException {
+    StringBuffer sb;
+    Token t;
+    ASTInstanceof ionode;
+    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+      case 36:
+        jj_consume_token(36);
+        ASTNegate jjtn001 = new ASTNegate(JJTNEGATE);
+        boolean jjtc001 = true;
+        jjtree.openNodeScope(jjtn001);
         try {
           unaryExpression();
         } catch (Throwable jjte001) {
-              if (jjtc001) {
-                jjtree.clearNodeScope(jjtn001);
-                jjtc001 = false;
-              } else {
-                jjtree.popNode();
-              }
-              if (jjte001 instanceof RuntimeException) {
-                {if (true) throw (RuntimeException)jjte001;}
-              }
-              if (jjte001 instanceof ParseException) {
-                {if (true) throw (ParseException)jjte001;}
-              }
-              {if (true) throw (Error)jjte001;}
+          if (jjtc001) {
+            jjtree.clearNodeScope(jjtn001);
+            jjtc001 = false;
+          } else {
+            jjtree.popNode();
+          }
+          if (jjte001 instanceof RuntimeException) {
+            {
+              if (true) throw (RuntimeException) jjte001;
+            }
+          }
+          if (jjte001 instanceof ParseException) {
+            {
+              if (true) throw (ParseException) jjte001;
+            }
+          }
+          {
+            if (true) throw (Error) jjte001;
+          }
         } finally {
-              if (jjtc001) {
-                jjtree.closeNodeScope(jjtn001,  2);
-              }
+          if (jjtc001) {
+            jjtree.closeNodeScope(jjtn001, 1);
+          }
         }
         break;
-      case 38:
-        jj_consume_token(38);
-              ASTDivide jjtn002 = new ASTDivide(JJTDIVIDE);
-              boolean jjtc002 = true;
-              jjtree.openNodeScope(jjtn002);
+      case 35:
+        jj_consume_token(35);
+        unaryExpression();
+        break;
+      case 40:
+        jj_consume_token(40);
+        ASTBitNegate jjtn002 = new ASTBitNegate(JJTBITNEGATE);
+        boolean jjtc002 = true;
+        jjtree.openNodeScope(jjtn002);
         try {
           unaryExpression();
         } catch (Throwable jjte002) {
-              if (jjtc002) {
-                jjtree.clearNodeScope(jjtn002);
-                jjtc002 = false;
-              } else {
-                jjtree.popNode();
-              }
-              if (jjte002 instanceof RuntimeException) {
-                {if (true) throw (RuntimeException)jjte002;}
-              }
-              if (jjte002 instanceof ParseException) {
-                {if (true) throw (ParseException)jjte002;}
-              }
-              {if (true) throw (Error)jjte002;}
+          if (jjtc002) {
+            jjtree.clearNodeScope(jjtn002);
+            jjtc002 = false;
+          } else {
+            jjtree.popNode();
+          }
+          if (jjte002 instanceof RuntimeException) {
+            {
+              if (true) throw (RuntimeException) jjte002;
+            }
+          }
+          if (jjte002 instanceof ParseException) {
+            {
+              if (true) throw (ParseException) jjte002;
+            }
+          }
+          {
+            if (true) throw (Error) jjte002;
+          }
         } finally {
-              if (jjtc002) {
-                jjtree.closeNodeScope(jjtn002,  2);
-              }
+          if (jjtc002) {
+            jjtree.closeNodeScope(jjtn002, 1);
+          }
         }
         break;
-      case 39:
-        jj_consume_token(39);
-              ASTRemainder jjtn003 = new ASTRemainder(JJTREMAINDER);
-              boolean jjtc003 = true;
-              jjtree.openNodeScope(jjtn003);
+      case 28:
+      case 41:
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+          case 41:
+            jj_consume_token(41);
+            break;
+          case 28:
+            jj_consume_token(28);
+            break;
+          default:
+            jj_la1[32] = jj_gen;
+            jj_consume_token(-1);
+            throw new ParseException();
+        }
+        ASTNot jjtn003 = new ASTNot(JJTNOT);
+        boolean jjtc003 = true;
+        jjtree.openNodeScope(jjtn003);
         try {
           unaryExpression();
         } catch (Throwable jjte003) {
-              if (jjtc003) {
-                jjtree.clearNodeScope(jjtn003);
-                jjtc003 = false;
-              } else {
-                jjtree.popNode();
-              }
-              if (jjte003 instanceof RuntimeException) {
-                {if (true) throw (RuntimeException)jjte003;}
-              }
-              if (jjte003 instanceof ParseException) {
-                {if (true) throw (ParseException)jjte003;}
-              }
-              {if (true) throw (Error)jjte003;}
+          if (jjtc003) {
+            jjtree.clearNodeScope(jjtn003);
+            jjtc003 = false;
+          } else {
+            jjtree.popNode();
+          }
+          if (jjte003 instanceof RuntimeException) {
+            {
+              if (true) throw (RuntimeException) jjte003;
+            }
+          }
+          if (jjte003 instanceof ParseException) {
+            {
+              if (true) throw (ParseException) jjte003;
+            }
+          }
+          {
+            if (true) throw (Error) jjte003;
+          }
         } finally {
-              if (jjtc003) {
-                jjtree.closeNodeScope(jjtn003,  2);
-              }
+          if (jjtc003) {
+            jjtree.closeNodeScope(jjtn003, 1);
+          }
         }
         break;
-      default:
-        jj_la1[31] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-    }
-  }
-
-// unary (level 1)
-  final public void unaryExpression() throws ParseException {
-    StringBuffer sb;
-    Token t;
-    ASTInstanceof ionode;
-    switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-    case 36:
-      jj_consume_token(36);
-              ASTNegate jjtn001 = new ASTNegate(JJTNEGATE);
-              boolean jjtc001 = true;
-              jjtree.openNodeScope(jjtn001);
-      try {
-        unaryExpression();
-      } catch (Throwable jjte001) {
-              if (jjtc001) {
-                jjtree.clearNodeScope(jjtn001);
-                jjtc001 = false;
-              } else {
-                jjtree.popNode();
-              }
-              if (jjte001 instanceof RuntimeException) {
-                {if (true) throw (RuntimeException)jjte001;}
-              }
-              if (jjte001 instanceof ParseException) {
-                {if (true) throw (ParseException)jjte001;}
-              }
-              {if (true) throw (Error)jjte001;}
-      } finally {
-              if (jjtc001) {
-                jjtree.closeNodeScope(jjtn001,  1);
-              }
-      }
-      break;
-    case 35:
-      jj_consume_token(35);
-      unaryExpression();
-      break;
-    case 40:
-      jj_consume_token(40);
-              ASTBitNegate jjtn002 = new ASTBitNegate(JJTBITNEGATE);
-              boolean jjtc002 = true;
-              jjtree.openNodeScope(jjtn002);
-      try {
-        unaryExpression();
-      } catch (Throwable jjte002) {
-              if (jjtc002) {
-                jjtree.clearNodeScope(jjtn002);
-                jjtc002 = false;
-              } else {
-                jjtree.popNode();
-              }
-              if (jjte002 instanceof RuntimeException) {
-                {if (true) throw (RuntimeException)jjte002;}
-              }
-              if (jjte002 instanceof ParseException) {
-                {if (true) throw (ParseException)jjte002;}
+      case 4:
+      case 44:
+      case 46:
+      case 47:
+      case 48:
+      case 49:
+      case 50:
+      case 51:
+      case 52:
+      case 54:
+      case 56:
+      case 57:
+      case IDENT:
+      case DYNAMIC_SUBSCRIPT:
+      case CHAR_LITERAL:
+      case BACK_CHAR_LITERAL:
+      case STRING_LITERAL:
+      case INT_LITERAL:
+      case FLT_LITERAL:
+        navigationChain();
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+          case 42:
+            jj_consume_token(42);
+            t = jj_consume_token(IDENT);
+            ASTInstanceof jjtn004 = new ASTInstanceof(JJTINSTANCEOF);
+            boolean jjtc004 = true;
+            jjtree.openNodeScope(jjtn004);
+            try {
+              jjtree.closeNodeScope(jjtn004, 1);
+              jjtc004 = false;
+              sb = new StringBuffer(t.image);
+              ionode = jjtn004;
+            } finally {
+              if (jjtc004) {
+                jjtree.closeNodeScope(jjtn004, 1);
               }
-              {if (true) throw (Error)jjte002;}
-      } finally {
-              if (jjtc002) {
-                jjtree.closeNodeScope(jjtn002,  1);
+            }
+            label_12:
+            while (true) {
+              switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                case 43:
+                  ;
+                  break;
+                default:
+                  jj_la1[33] = jj_gen;
+                  break label_12;
               }
-      }
-      break;
-    case 28:
-    case 41:
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 41:
-        jj_consume_token(41);
-        break;
-      case 28:
-        jj_consume_token(28);
-        break;
-      default:
-        jj_la1[32] = jj_gen;
-        jj_consume_token(-1);
-        throw new ParseException();
-      }
-                        ASTNot jjtn003 = new ASTNot(JJTNOT);
-                        boolean jjtc003 = true;
-                        jjtree.openNodeScope(jjtn003);
-      try {
-        unaryExpression();
-      } catch (Throwable jjte003) {
-                        if (jjtc003) {
-                          jjtree.clearNodeScope(jjtn003);
-                          jjtc003 = false;
-                        } else {
-                          jjtree.popNode();
-                        }
-                        if (jjte003 instanceof RuntimeException) {
-                          {if (true) throw (RuntimeException)jjte003;}
-                        }
-                        if (jjte003 instanceof ParseException) {
-                          {if (true) throw (ParseException)jjte003;}
-                        }
-                        {if (true) throw (Error)jjte003;}
-      } finally {
-                        if (jjtc003) {
-                          jjtree.closeNodeScope(jjtn003,  1);
-                        }
-      }
-      break;
-    case 4:
-    case 44:
-    case 46:
-    case 47:
-    case 48:
-    case 49:
-    case 50:
-    case 51:
-    case 52:
-    case 54:
-    case 56:
-    case 57:
-    case IDENT:
-    case DYNAMIC_SUBSCRIPT:
-    case CHAR_LITERAL:
-    case BACK_CHAR_LITERAL:
-    case STRING_LITERAL:
-    case INT_LITERAL:
-    case FLT_LITERAL:
-      navigationChain();
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 42:
-        jj_consume_token(42);
-        t = jj_consume_token(IDENT);
-                           ASTInstanceof jjtn004 = new ASTInstanceof(JJTINSTANCEOF);
-                           boolean jjtc004 = true;
-                           jjtree.openNodeScope(jjtn004);
-        try {
-                           jjtree.closeNodeScope(jjtn004,  1);
-                           jjtc004 = false;
-                           sb = new StringBuffer(t.image); ionode = jjtn004;
-        } finally {
-                           if (jjtc004) {
-                             jjtree.closeNodeScope(jjtn004,  1);
-                           }
-        }
-        label_12:
-        while (true) {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case 43:
-            ;
+              jj_consume_token(43);
+              t = jj_consume_token(IDENT);
+              sb.append('.').append(t.image);
+            }
+            ionode.setTargetType(new String(sb));
             break;
           default:
-            jj_la1[33] = jj_gen;
-            break label_12;
-          }
-          jj_consume_token(43);
-          t = jj_consume_token(IDENT);
-                                          sb.append('.').append( t.image );
+            jj_la1[34] = jj_gen;
+            ;
         }
-                                          ionode.setTargetType( new String(sb) );
         break;
       default:
-        jj_la1[34] = jj_gen;
-        ;
-      }
-      break;
-    default:
-      jj_la1[35] = jj_gen;
-      jj_consume_token(-1);
-      throw new ParseException();
+        jj_la1[35] = jj_gen;
+        jj_consume_token(-1);
+        throw new ParseException();
     }
   }
 
-// navigation chain: property references, method calls, projections, selections, etc.
+  // navigation chain: property references, method calls, projections, selections, etc.
   final public void navigationChain() throws ParseException {
     primaryExpression();
     label_13:
     while (true) {
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 43:
-      case 44:
-      case 52:
-      case DYNAMIC_SUBSCRIPT:
-        ;
-        break;
-      default:
-        jj_la1[36] = jj_gen;
-        break label_13;
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 43:
+        case 44:
+        case 52:
+        case DYNAMIC_SUBSCRIPT:
+          ;
+          break;
+        default:
+          jj_la1[36] = jj_gen;
+          break label_13;
       }
-      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-      case 43:
-        jj_consume_token(43);
+      switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+        case 43:
+          jj_consume_token(43);
           ASTChain jjtn001 = new ASTChain(JJTCHAIN);
           boolean jjtc001 = true;
           jjtree.openNodeScope(jjtn001);
-        try {
-          switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-          case IDENT:
-            if (jj_2_1(2)) {
-              methodCall();
-            } else {
-              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+          try {
+            switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
               case IDENT:
-                propertyName();
+                if (jj_2_1(2)) {
+                  methodCall();
+                } else {
+                  switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case IDENT:
+                      propertyName();
+                      break;
+                    default:
+                      jj_la1[37] = jj_gen;
+                      jj_consume_token(-1);
+                      throw new ParseException();
+                  }
+                }
+                break;
+              case 54:
+                if (jj_2_2(2)) {
+                  projection();
+                } else {
+                  switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+                    case 54:
+                      selection();
+                      break;
+                    default:
+                      jj_la1[38] = jj_gen;
+                      jj_consume_token(-1);
+                      throw new ParseException();
+                  }
+                }
+                break;
+              case 44:
+                jj_consume_token(44);
+                expression();
+                jj_consume_token(45);
                 break;
               default:
-                jj_la1[37] = jj_gen;
+                jj_la1[39] = jj_gen;
                 jj_consume_token(-1);
                 throw new ParseException();
+            }
+          } catch (Throwable jjte001) {
+            if (jjtc001) {
+              jjtree.clearNodeScope(jjtn001);
+              jjtc001 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte001 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte001;
+              }
+            }
+            if (jjte001 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte001;
+              }
+            }
+            {
+              if (true) throw (Error) jjte001;
+            }
+          } finally {
+            if (jjtc001) {
+              jjtree.closeNodeScope(jjtn001, 2);
+            }
+          }
+          break;
+        case 52:
+        case DYNAMIC_SUBSCRIPT:
+          ASTChain jjtn002 = new ASTChain(JJTCHAIN);
+          boolean jjtc002 = true;
+          jjtree.openNodeScope(jjtn002);
+          try {
+            index();
+          } catch (Throwable jjte002) {
+            if (jjtc002) {
+              jjtree.clearNodeScope(jjtn002);
+              jjtc002 = false;
+            } else {
+              jjtree.popNode();
+            }
+            if (jjte002 instanceof RuntimeException) {
+              {
+                if (true) throw (RuntimeException) jjte002;
               }
             }
-            break;
-          case 54:
-            if (jj_2_2(2)) {
-              projection();
-            } else {
-              switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
-              case 54:
-                selection();
-                break;
-              default:
-                jj_la1[38] = jj_gen;
-                jj_consume_token(-1);
-                throw new ParseException();
+            if (jjte002 instanceof ParseException) {
+              {
+                if (true) throw (ParseException) jjte002;
               }
             }
-            break;
-          case 44:
-            jj_consume_token(44);
-            expression();
+            {
+              if (true) throw (Error) jjte002;
+            }
+          } finally {
+            if (jjtc002) {
+              jjtree.closeNodeScope(jjtn002, 2);
+            }
+          }
+          break;
+        case 44:
+          jj_consume_token(44);
+          expression();
+          ASTEval jjtn003 = new ASTEval(JJTEVAL);
+          boolean jjtc003 = true;
+          jjtree.openNodeScope(jjtn003);
+          try {
             jj_consume_token(45);
+          } finally {
+            if (jjtc003) {
+              jjtree.closeNodeScope(jjtn003, 2);
+            }
+          }
+          break;
+        default:
+          jj_la1[40] = jj_gen;
+          jj_consume_token(-1);
+          throw new ParseException();
+      }
+    }
+  }
+
+  final public void primaryExpression() throws ParseException {
+    Token t;
+    String className = null;
+    switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+      case CHAR_LITERAL:
+      case BACK_CHAR_LITERAL:
+      case STRING_LITERAL:
+      case INT_LITERAL:
+      case FLT_LITERAL:
+        switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
+          case CHAR_LITERAL:
+            jj_consume_token(CHAR_LITERAL);
+            break;
+          case BACK_CHAR_LITERAL:
+            jj_consume_token(BACK_CHAR_LITERAL);
+            break;
+          case STRING_LITERAL:
+            jj_consume_token(STRING_LITERAL);
+            break;
+          case INT_LITERAL:
+            jj_consume_token(INT_LITERAL);
+            break;
+          case FLT_LITERAL:
+            jj_consume_token(FLT_LITERAL);
             break;
           default:
-            jj_la1[39] = jj_gen;
+            jj_la1[41] = jj_gen;
             jj_consume_token(-1);
             throw new ParseException();
-          }
-        } catch (Throwable jjte001) {
-          if (jjtc001) {
-            jjtree.clearNodeScope(jjtn001);
-            jjtc001 = false;
-          } else {
-            jjtree.popNode();
-          }
-          if (jjte001 instanceof RuntimeException) {
-            {if (true) throw (RuntimeException)jjte001;}
-          }
-          if (jjte001 instanceof ParseException) {
-            {if (true) throw (ParseException)jjte001;}
-          }
-          {if (true) throw (Error)jjte001;}
+        }
+        ASTConst jjtn001 = new ASTConst(JJTCONST);
+        boolean jjtc001 = true;
+        jjtree.openNodeScope(jjtn001);
+        try {

[... 2414 lines stripped ...]