Commits

jkuh...@d4b077e3-5828-0410-b394-cb2b42183085  committed 4487015

Upgraded javacc and re-ran grammar generator.

  • Participants
  • Parent commits 81326df

Comments (0)

Files changed (7)

   </component>
   <component name="ChangeListManager">
     <list default="true" name="Default" comment="">
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/org/ognl/test/CollectionDirectPropertyTest.java" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/CollectionDirectPropertyTest.java" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/accessors/ListPropertyAccessorTest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/MapPropertyAccessor.java" afterPath="$PROJECT_DIR$/src/java/ognl/MapPropertyAccessor.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/ASTConst.java" afterPath="$PROJECT_DIR$/src/java/ognl/ASTConst.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/org/ognl/test/IndexAccessTest.java" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/IndexAccessTest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/org/ognl/test/objects/BeanProviderAccessor.java" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/objects/BeanProviderAccessor.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/org/ognl/test/ASTPropertyTest.java" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/ASTPropertyTest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/org/ognl/test/objects/Root.java" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/objects/Root.java" />
-      <change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/accessors" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/org/ognl/test/ObjectIndexedPropertyTest.java" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/ObjectIndexedPropertyTest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/ListPropertyAccessor.java" afterPath="$PROJECT_DIR$/src/java/ognl/ListPropertyAccessor.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/ArrayPropertyAccessor.java" afterPath="$PROJECT_DIR$/src/java/ognl/ArrayPropertyAccessor.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/ASTProperty.java" afterPath="$PROJECT_DIR$/src/java/ognl/ASTProperty.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/ObjectPropertyAccessor.java" afterPath="$PROJECT_DIR$/src/java/ognl/ObjectPropertyAccessor.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/enhance/ExpressionCompiler.java" afterPath="$PROJECT_DIR$/src/java/ognl/enhance/ExpressionCompiler.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/OgnlParserTokenManager.java" afterPath="$PROJECT_DIR$/src/java/ognl/OgnlParserTokenManager.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/build/javacc.jar" afterPath="$PROJECT_DIR$/lib/build/javacc.jar" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/ognl.jj" afterPath="$PROJECT_DIR$/src/java/ognl/ognl.jj" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/OgnlParserTreeConstants.java" afterPath="$PROJECT_DIR$/src/java/ognl/OgnlParserTreeConstants.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/OgnlParser.java" afterPath="$PROJECT_DIR$/src/java/ognl/OgnlParser.java" />
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/JavaCharStream.java" afterPath="$PROJECT_DIR$/src/java/ognl/JavaCharStream.java" />
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/OGNL.iws" afterPath="$PROJECT_DIR$/OGNL.iws" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/org/ognl/test/InterfaceInheritanceTest.java" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/InterfaceInheritanceTest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/ASTChain.java" afterPath="$PROJECT_DIR$/src/java/ognl/ASTChain.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/test/java/org/ognl/test/ASTMethodTest.java" afterPath="$PROJECT_DIR$/src/test/java/org/ognl/test/ASTMethodTest.java" />
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/src/java/ognl/SimpleNode.java" afterPath="$PROJECT_DIR$/src/java/ognl/SimpleNode.java" />
     </list>
   </component>
   <component name="ChangesViewManager" flattened_view="true" />
       <showLibraryContents />
       <hideEmptyPackages />
       <abbreviatePackageNames />
-      <showStructure ProjectPane="false" PackagesPane="false" Scope="false" Favorites="false" />
+      <showStructure PackagesPane="false" ProjectPane="false" Scope="false" Favorites="false" />
       <autoscrollToSource />
       <autoscrollFromSource />
       <sortByType />
     <property name="cvs_file_history_treeWidth0" value="464" />
     <property name="cvs_file_history_treeWidth1" value="464" />
     <property name="cvs_file_history_treeWidth2" value="464" />
+    <property name="cvs_file_history_flatWidth2" value="464" />
     <property name="cvs_file_history_treeWidth3" value="464" />
-    <property name="cvs_file_history_flatWidth2" value="464" />
+    <property name="cvs_file_history_flatWidth3" value="464" />
     <property name="cvs_file_history_treeOrder0" value="0" />
-    <property name="cvs_file_history_flatWidth3" value="464" />
     <property name="MemberChooser.showClasses" value="true" />
     <property name="cvs_file_history_flatWidth0" value="464" />
     <property name="cvs_file_history_flatWidth1" value="464" />
         <option name="Make" value="true" />
       </method>
     </tempConfiguration>
-    <configuration default="true" type="Remote" factoryName="Remote">
-      <option name="USE_SOCKET_TRANSPORT" value="true" />
-      <option name="SERVER_MODE" value="false" />
-      <option name="SHMEM_ADDRESS" value="javadebug" />
-      <option name="HOST" value="localhost" />
-      <option name="PORT" value="5005" />
-    </configuration>
-    <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
-      <option name="MAIN_CLASS_NAME" />
-      <option name="VM_PARAMETERS" />
-      <option name="PROGRAM_PARAMETERS" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="ENABLE_SWING_INSPECTOR" value="false" />
-      <module name="" />
-    </configuration>
     <configuration default="true" type="Applet" factoryName="Applet">
       <module name="" />
       <option name="MAIN_CLASS_NAME" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
       <option name="ALTERNATIVE_JRE_PATH" />
     </configuration>
-    <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
-      <module name="" />
-      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
-      <option name="ALTERNATIVE_JRE_PATH" />
-      <option name="PACKAGE_NAME" />
-      <option name="MAIN_CLASS_NAME" />
-      <option name="METHOD_NAME" />
-      <option name="TEST_OBJECT" value="class" />
-      <option name="VM_PARAMETERS" />
-      <option name="PARAMETERS" />
-      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
-      <option name="ADDITIONAL_CLASS_PATH" />
-      <option name="TEST_SEARCH_SCOPE">
-        <value defaultName="wholeProject" />
-      </option>
-      <method>
-        <option name="Make" value="true" />
-      </method>
-    </configuration>
     <configuration default="true" type="TestNG" factoryName="TestNG" enabled="false" merge="false">
       <module name="" />
       <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
         <option name="Make" value="true" />
       </method>
     </configuration>
+    <configuration default="true" type="Remote" factoryName="Remote">
+      <option name="USE_SOCKET_TRANSPORT" value="true" />
+      <option name="SERVER_MODE" value="false" />
+      <option name="SHMEM_ADDRESS" value="javadebug" />
+      <option name="HOST" value="localhost" />
+      <option name="PORT" value="5005" />
+    </configuration>
+    <configuration default="true" type="JUnit" factoryName="JUnit" enabled="false" merge="false">
+      <module name="" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="PACKAGE_NAME" />
+      <option name="MAIN_CLASS_NAME" />
+      <option name="METHOD_NAME" />
+      <option name="TEST_OBJECT" value="class" />
+      <option name="VM_PARAMETERS" />
+      <option name="PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ADDITIONAL_CLASS_PATH" />
+      <option name="TEST_SEARCH_SCOPE">
+        <value defaultName="wholeProject" />
+      </option>
+      <method>
+        <option name="Make" value="true" />
+      </method>
+    </configuration>
+    <configuration default="true" type="Application" factoryName="Application" enabled="false" merge="false">
+      <option name="MAIN_CLASS_NAME" />
+      <option name="VM_PARAMETERS" />
+      <option name="PROGRAM_PARAMETERS" />
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
+      <option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
+      <option name="ALTERNATIVE_JRE_PATH" />
+      <option name="ENABLE_SWING_INSPECTOR" value="false" />
+      <module name="" />
+    </configuration>
     <configuration default="true" type="#com.intellij.j2ee.web.tomcat.TomcatRunConfigurationFactory" factoryName="Remote">
       <option name="WORKING_DIRECTORY" />
       <option name="HOST" value="localhost" />
     </todo-panel>
   </component>
   <component name="ToolWindowManager">
-    <frame x="80" y="152" width="2112" height="1362" extended-state="0" />
+    <frame x="84" y="158" width="2112" height="1362" extended-state="0" />
     <editor active="false" />
     <layout>
       <window_info id="UI Designer" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
       <window_info id="Module Dependencies" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
       <window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="8" />
       <window_info id="File View" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" order="3" />
-      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.23807205" order="0" />
+      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.22444011" order="0" />
       <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" order="2" />
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" order="6" />
       <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25975105" order="2" />
     <option name="PERFORM_COMMIT_IN_BACKGROUND" value="false" />
     <option name="PUT_FOCUS_INTO_COMMENT" value="false" />
     <option name="FORCE_NON_EMPTY_COMMENT" value="false" />
-    <option name="LAST_COMMIT_MESSAGE" value="Fixes number of bugs resulting from more ASTConst changes and how the context types are figured out." />
+    <option name="LAST_COMMIT_MESSAGE" value="Upgraded javacc and re-ran grammar generator." />
     <option name="SAVE_LAST_COMMIT_MESSAGE" value="true" />
     <option name="CHECKIN_DIALOG_SPLITTER_PROPORTION" value="0.8" />
     <option name="OPTIMIZE_IMPORTS_BEFORE_PROJECT_COMMIT" value="true" />
     <option name="UPDATE_GROUP_BY_PACKAGES" value="false" />
     <option name="SHOW_FILE_HISTORY_AS_TREE" value="false" />
     <option name="FILE_HISTORY_SPLITTER_PROPORTION" value="0.6" />
-    <MESSAGE value="F#@$#$1! ...........Static references had bug in ASTChain with setting the special &quot;noRoot&quot; flag (hack) on static fields when the astchain was contained by another expression." />
     <MESSAGE value="ASTMethods weren't handling the case where a parameter value might be a literal &quot;null&quot; when handing objects off for conversion to OgnlOps.covnertValue." />
     <MESSAGE value="Minor code formatting / cleanup." />
     <MESSAGE value="Partially fixes OGNL-17 . It's only partial because someone tried to sneak in two different tickets under one." />
     <MESSAGE value="Minor update?" />
     <MESSAGE value="OgnlRuntime was incorrectly returning false for shouldConvertNumericTypes when the values were primitives - probably a result of the astconst changes." />
     <MESSAGE value="Fixes number of bugs resulting from more ASTConst changes and how the context types are figured out." />
+    <MESSAGE value="Upgraded javacc and re-ran grammar generator." />
   </component>
   <component name="antWorkspaceConfiguration">
     <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
     <option name="myLastEditedConfigurable" />
   </component>
   <component name="editorHistoryManager">
-    <entry file="file://$PROJECT_DIR$/src/test/java/org/ognl/test/accessors/ListPropertyAccessorTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="53" column="4" selection-start="1750" selection-end="1750" vertical-scroll-proportion="0.8594848">
-          <folding>
-            <element signature="imports" expanded="true" />
-          </folding>
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/java/ognl/ObjectPropertyAccessor.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="249" column="0" selection-start="8940" selection-end="8940" vertical-scroll-proportion="0.70140517">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/java/ognl/MapPropertyAccessor.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="166" column="0" selection-start="6604" selection-end="6604" vertical-scroll-proportion="0.56088996">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/java/ognl/ASTChain.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="270" column="20" selection-start="11415" selection-end="11415" vertical-scroll-proportion="0.035128806">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/java/org/ognl/test/IndexedPropertyTest.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="54" column="0" selection-start="3008" selection-end="3008" vertical-scroll-proportion="0.2810903">
-          <folding />
-        </state>
-      </provider>
-    </entry>
-    <entry file="file://$PROJECT_DIR$/src/test/java/org/ognl/test/objects/Root.java">
-      <provider selected="true" editor-type-id="text-editor">
-        <state line="222" column="0" selection-start="6957" selection-end="6957" vertical-scroll-proportion="0.5093677">
-          <folding />
-        </state>
-      </provider>
-    </entry>
     <entry file="file://$PROJECT_DIR$/src/java/ognl/ASTMethod.java">
       <provider selected="true" editor-type-id="text-editor">
         <state line="350" column="80" selection-start="13167" selection-end="13200" vertical-scroll-proportion="0.48594847">
         </state>
       </provider>
     </entry>
+    <entry file="file://$PROJECT_DIR$/src/java/ognl/ASTShiftLeft.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="58" column="0" selection-start="2405" selection-end="2405" vertical-scroll-proportion="0.3705281">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/java/ognl/ObjectArrayPool.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="174" column="0" selection-start="5314" selection-end="5314" vertical-scroll-proportion="0.39948893">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/src/java/ognl/OgnlParser.java">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="11" column="43" selection-start="500" selection-end="500" vertical-scroll-proportion="0.1423641">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/build.xml">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="24" column="0" selection-start="792" selection-end="792" vertical-scroll-proportion="0.30664396">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://perf-test-postupgrade.txt">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="56" column="0" selection-start="2646" selection-end="2646" vertical-scroll-proportion="0.71428573">
+          <folding />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://perf-test-preupgrade.txt">
+      <provider selected="true" editor-type-id="text-editor">
+        <state line="56" column="0" selection-start="2646" selection-end="2646" vertical-scroll-proportion="0.71428573">
+          <folding />
+        </state>
+      </provider>
+    </entry>
   </component>
   <component name="testng.defaultConfiguration">
     <outputDirectory />

File lib/build/javacc.jar

Binary file modified.

File src/java/ognl/JavaCharStream.java

-/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 3.0 */
+/* Generated By:JavaCC: Do not edit this line. JavaCharStream.java Version 4.0 */
 package ognl;
 
 /**
   protected int maxNextCharInd = 0;
   protected int nextCharInd = -1;
   protected int inBuf = 0;
+  protected int tabSize = 8;
+
+  protected void setTabSize(int i) { tabSize = i; }
+  protected int getTabSize(int i) { return tabSize; }
 
   protected void ExpandBuff(boolean wrapAround)
   {
            break;
         case '\t' :
            column--;
-           column += (8 - (column & 07));
+           column += (tabSize - (column % tabSize));
            break;
         default :
            break;
   {
      ReInit(dstream, 1, 1, 4096);
   }
+  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+     this(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
   public JavaCharStream(java.io.InputStream dstream, int startline,
   int startcolumn, int buffersize)
   {
      this(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
   }
 
+  public JavaCharStream(java.io.InputStream dstream, String encoding, int startline,
+                        int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+     this(dstream, encoding, startline, startcolumn, 4096);
+  }
+
   public JavaCharStream(java.io.InputStream dstream, int startline,
-                                                           int startcolumn)
+                        int startcolumn)
   {
      this(dstream, startline, startcolumn, 4096);
   }
 
+  public JavaCharStream(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+     this(dstream, encoding, 1, 1, 4096);
+  }
+
   public JavaCharStream(java.io.InputStream dstream)
   {
      this(dstream, 1, 1, 4096);
   }
 
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+  int startcolumn, int buffersize) throws java.io.UnsupportedEncodingException
+  {
+     ReInit(encoding == null ? new java.io.InputStreamReader(dstream) : new java.io.InputStreamReader(dstream, encoding), startline, startcolumn, buffersize);
+  }
+
   public void ReInit(java.io.InputStream dstream, int startline,
   int startcolumn, int buffersize)
   {
-     ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, 4096);
+     ReInit(new java.io.InputStreamReader(dstream), startline, startcolumn, buffersize);
+  }
+  public void ReInit(java.io.InputStream dstream, String encoding, int startline,
+                     int startcolumn) throws java.io.UnsupportedEncodingException
+  {
+     ReInit(dstream, encoding, startline, startcolumn, 4096);
   }
   public void ReInit(java.io.InputStream dstream, int startline,
-                                                           int startcolumn)
+                     int startcolumn)
   {
      ReInit(dstream, startline, startcolumn, 4096);
   }
+  public void ReInit(java.io.InputStream dstream, String encoding) throws java.io.UnsupportedEncodingException
+  {
+     ReInit(dstream, encoding, 1, 1, 4096);
+  }
+
   public void ReInit(java.io.InputStream dstream)
   {
      ReInit(dstream, 1, 1, 4096);

File src/java/ognl/OgnlParser.java

 package ognl;
 
 /**
- * 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.
+ * 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();
 
-    protected JJTOgnlParserState jjtree = new JJTOgnlParserState();
+/**
+ * This is the top-level construct of OGNL.
+ */
+  final public Node topLevelExpression() throws ParseException {
+    expression();
+    jj_consume_token(0);
+                         {if (true) return jjtree.rootNode();}
+    throw new Error("Missing return statement in function");
+  }
 
-    /**
-     * This is the top-level construct of OGNL.
-     */
-    final public Node topLevelExpression()
-        throws ParseException
-    {
-        expression();
-        jj_consume_token(0);
-        {
-            if (true) return jjtree.rootNode();
+// 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;
+      }
+      jj_consume_token(1);
+                                   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;}
+      } finally {
+                                   if (jjtc001) {
+                                     jjtree.closeNodeScope(jjtn001,  2);
+                                   }
+      }
+    }
+  }
+
+// 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;
+      ;
+    }
+  }
+
+// 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 {
+        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)
+  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:
+        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);
+      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;}
+      } finally {
+                                            if (jjtc001) {
+                                              jjtree.closeNodeScope(jjtn001,  2);
+                                            }
+      }
+    }
+  }
+
+// 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:
+        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);
+      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;}
+      } finally {
+                                              if (jjtc001) {
+                                                jjtree.closeNodeScope(jjtn001,  2);
+                                              }
+      }
+    }
+  }
+
+// 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:
+        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);
+      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;}
+      } finally {
+                                             if (jjtc001) {
+                                               jjtree.closeNodeScope(jjtn001,  2);
+                                             }
+      }
+    }
+  }
+
+// 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:
+        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);
+      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;}
+      } finally {
+                                     if (jjtc001) {
+                                       jjtree.closeNodeScope(jjtn001,  2);
+                                     }
+      }
+    }
+  }
+
+// 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:
+        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);
+      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;}
+      } finally {
+                                           if (jjtc001) {
+                                             jjtree.closeNodeScope(jjtn001,  2);
+                                           }
+      }
+    }
+  }
+
+// 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) {
+        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();
         }
-        throw new Error("Missing return statement in function");
+                        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);
+          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[16] = jj_gen;
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
     }
+  }
 
-    // sequence (level 14)
-    final public void expression()
-        throws ParseException
-    {
-        assignmentExpression();
-        label_1: while(true) {
-            switch((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
-            case 1:
-                ;
+// 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) {
+        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:
+        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;
+      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);
+          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);
+          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[22] = jj_gen;
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+    }
+  }
+
+// 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) {
+        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:
+        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;
+      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);
+          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[27] = jj_gen;
+        jj_consume_token(-1);
+        throw new ParseException();
+      }
+    }
+  }
+
+// 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:
+        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 (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 (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 (jjte001 instanceof ParseException) {
+                {if (true) throw (ParseException)jjte001;}
+              }
+              {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 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 (jjte003 instanceof ParseException) {
+                {if (true) throw (ParseException)jjte003;}
+              }
+              {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();
+      }
+    }
+  }
+
+// 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;}
+              }
+              {if (true) throw (Error)jjte002;}
+      } finally {
+              if (jjtc002) {
+                jjtree.closeNodeScope(jjtn002,  1);
+              }
+      }
+      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:
+            ;
+            break;
+          default:
+            jj_la1[33] = jj_gen;
+            break label_12;
+          }
+          jj_consume_token(43);
+          t = jj_consume_token(IDENT);
+                                          sb.append('.').append( t.image );
+        }
+                                          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();
+    }
+  }
+
+// 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:
+        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) {
+              case IDENT:
+                propertyName();
                 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);
-            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);
-                }
-            }
-        }
-    }
-
-    // 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);
-                }
+              default:
+                jj_la1[37] = jj_gen;
+                jj_consume_token(-1);
+                throw new ParseException();
+              }
             }
             break;
-        default:
-            jj_la1[1] = jj_gen;
-            ;
-        }
-    }
-
-    // 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 {
-                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);
-                }
+          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;
-        default:
-            jj_la1[2] = jj_gen;
-            ;
-        }
-    }
-
-    // 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:
-                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);
-            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;
-                }
-            } finally {
-                if (jjtc001) {
-                    jjtree.closeNodeScope(jjtn001, 2);
-                }
-            }
-        }
-    }
-
-    // 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:
-                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);
-            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;
-                }
-            } finally {
-                if (jjtc001) {
-                    jjtree.closeNodeScope(jjtn001, 2);
-                }
-            }
-        }
-    }
-
-    // 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:
-                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);
-            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;
-                }
-            } finally {
-                if (jjtc001) {
-                    jjtree.closeNodeScope(jjtn001, 2);
-                }
-            }
-        }
-    }
-
-    // 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:
-                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);
-            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;
-                }